Skip to content

Latest commit

 

History

History
1596 lines (855 loc) · 67.3 KB

CHANGELOG.md

File metadata and controls

1596 lines (855 loc) · 67.3 KB

Changelog

This file conveniently consolidates all of the crates individual CHANGELOG.md files and groups them by timestamps at which crates were released. The file is updated every time one or more crates are released.

The format is based on Keep a Changelog. This project adheres to Semantic Versioning.

[Unreleased]

20220211.091841

  • Bump holochain_wasmer_* crates to v0.0.77 which relaxes the version requirements on serde. #1204
  • Fixes D-01415 holochain panic on startup #1206
  • hdk: delete, delete_entry, and delete_cap_grant can all now take a DeleteInput as an argument to be able specify ChainTopOrdering, congruent with create and update. This change is backward compatible: a plain HeaderHash can still be used as input to delete.

20220202.112225

  • New arc resizing algorithm based on PeerViewBeta
  • In both arc resizing algorithms, instead of aiming for the ideal target arc size, aim for an ideal range. This slack in the system allows all agents to converge on their target more stably, with less oscillation.

20220126.200716

  • Bump holochain-wasmer to fix a compilation issue. #1194
  • docs: Add introduction to front-page and move example section up 1172

20220120.093525

  • Fixes issue where holochain could get stuck in infinite loop when trying to send validation receipts. #1181.
  • Additional networking metric collection and associated admin api DumpNetworkMetrics { dna_hash: Option<DnaHash> } for inspection of metrics #1160
  • BREAKING CHANGE - Schema change for metrics database. Holochain will persist historical metrics once per hour, if you do not clear the metrics database it will crash at that point. #1183

20220106.093622

  • Adds better batching to validation workflows for much faster validation. #1167.
  • Adds the ability to manually insert elements into a source chain using the AdminRequest::AddElements command. Please check the docs and PR for more details / warnings on proper usage. #1166
  • hdk: Path now split into Path and PathEntry 1156
  • hdk: Minor changes and additions to Path methods 1156
  • BREAKING CHANGE: Range filters on chain queries are now INCLUSIVE and support hash bounds #1142
  • BREAKING CHANGE: Chain queries now support restricting results to a list of entry hashes #1142

20211222.094252

  • BREAKING CHANGE Removed app_info from HDK 1108
  • Permissions on host functions now return an error instead of panicking 1141
  • Add --build-info CLI flag for displaying various information in JSON format. #1163
  • Gets won’t return private entries unless you are have committed a header for that entry. #1157

20211215.130843

20211208.091009

  • Fixes database queries that were running on the runtime thread instead of the background thread. Makes the connections wait for a permit before taking a database connection from the pool. #1145
  • Adds basis_hash index to DhtOp table. This makes get queries faster. #1143
  • Agent info is now published as well as gossiped. #1115
  • BREAKING: Network wire message has changed format so will not be compatible with older versions. 1143.
  • Fixes to gossip that allows batching of large amounts of data. 1143.

20211201.111024

  • BREAKING CHANGE - Gossip now exchanges local peer info with initiate and accept request types. #1114.

20211124.093220

  • BREAKING CHANGES: db_sync_level changes to db_sync_strategy. Options are now Fast and Resilient. Default is Fast and should be the standard choice for most use cases. #1130
  • Some databases can handle corruption by wiping the db file and starting again. #1039.
  • BREAKING: Wire message CallRemote Takes from_agent. #1091
  • BREAKING CHANGES: All DHT data for the same DNA space is now shared in the same database. All authored data for the same DNA space is also now shared in another database. This requires no changes however data must be manually migrated from the old databases to the new databases. #1130
  • BREAKING: Wire message Call no longer takes from_agent. #1091

20211117.094411

20211110.083530

  • Fix issue where private dht ops were being leaked through the incoming ops sender. 1104.
  • Kitsune now attempts to rebind the network interface in the event of endpoint shutdown. Note, it’s still recommended to bind to 0.0.0.0 as the OS provides additional resiliency for interfaces coming and going. #1083
  • BREAKING CHANGE current chain head including recent writes available in agent info #1079
  • BREAKING (If using new lair) If you are using the new (non-legacy) lair_server keystore, you will need to rebuild your keystore, we now pre-hash the passphrase used to access it to mitigate some information leakage. #1094
  • Better lair signature fallback child process management. The child process will now be properly restarted if it exits. (Note this can take a few millis on Windows, and may result in some signature errors.) #1094
  • FIX: Bug that was allowing HeaderWithoutEntry to shutdown apps. #1105
  • Fixes: Bug where database connections would timeout and return DatabaseError(DbConnectionPoolError(Error(None))). #1097.
  • BREAKING CHANGE: Add all function names in a wasm to the zome info #1081
  • BREAKING CHANGE: Added a placeholder for zome properties on zome info #1080

20211103.094627

  • remote_signal has always been a fire-and-forget operation. Now it also uses the more efficient fire-and-forget “notify” low-level networking plumbing. #1075

  • BREAKING CHANGE entry_defs added to zome_info and referenced by macros PR1055

  • BREAKING CHANGE: The notion of “cell nicknames” (“nicks”) and “app slots” has been unified into the notion of “app roles”. This introduces several breaking changes. In general, you will need to rebuild any app bundles you are using, and potentially update some usages of the admin interface. In particular:

    • The slots field in App manifests is now called roles
    • The InstallApp admin method now takes a role_id field instead of a nick field
    • In the return value for any admin method which lists installed apps, e.g. ListEnabledApps, any reference to "slots" is now named "roles"
    • See #1045
  • Adds test utils for creating simulated networks. #1037.

  • Conductor can take a mocked network for testing simulated networks. #1036

  • Added DumpFullState to the admin interface, as a more complete form of DumpState which returns full Vec<DhtOp> instead of just their count, enabling more introspection of the state of the cell #1065.

  • BREAKING CHANGE Added function name to call info in HDK. #1078.

  • BREAKING CHANGE. Source chain query will now return results in header sequence order ascending.
  • BREAKING: Return ShardedGossipWire::Busy if we are overloaded with incoming gossip. #1076
    • This breaks the current network protocol and will not be compatible with other older versions of holochain (no manual action required).

20211027.100746

  • Post commit is now infallible and expects no return value PR1049
  • Always depend on itertools to make cargo build --no-default-features work #1060
  • #[hdk_extern(infallible)] now supports leaving off the return type of a fn PR1049
  • HeaderHashes no longer exists PR1049
  • HeaderHashedVec no longer exists PR1049

20211021.140006

  • Always depend on itertools to make cargo build --no-default-features work #1060

20211020.171211

  • call_info is now implemented 1047

  • dna_info now returns DnaInfo correctly #1044

    • ZomeInfo no longer includes what is now on DnaInfo
    • ZomeInfo renames zome_name and zome_id to name and id
    • DnaInfo includes name, hash, properties
  • post_commit hook is implemented now PR 1000

  • Bump legacy lair version to 0.0.8 fixing a crash when error message was too long #1046

  • Options to use new lair keystore #1040

keystore:
  type: danger_test_keystore

or

keystore:
  type: lair_server
  connection_url: "unix:///my/path/socket?k=Foo"
  • CallInfo now has as_at on it PR 1047
  • Removed Links in favour of Vec<Link> PR 1012

20211013.091723

  • Publish now runs on a loop if there are ops still needing receipts. #1024
  • Batch peer store write so we use less transactions. #1007.
  • Preparation for new lair api #1017
    • there should be no functional changes with this update.
    • adds new lair as an additional dependency and begins preparation for a config-time switch allowing use of new api lair keystore.
  • Add method SweetDnaFile::from_bundle_with_overrides #1030
  • Some SweetConductor::setup_app_* methods now take anything iterable, instead of array slices, for specifying lists of agents and DNAs #1030
  • BREAKING conductor config changes #1031

Where previously, you might have had:

use_dangerous_test_keystore: false
keystore_path: /my/path
passphrase_service:
  type: danger_insecure_from_config
  passphrase: "test-passphrase"

now you will use:

keystore:
  type: lair_server_legacy_deprecated
  keystore_path: /my/path
  danger_passphrase_insecure_from_config: "test-passphrase"

or:

keystore:
  type: danger_test_keystore_legacy_deprecated
  • Fix authority side get_links query #1027.
  • Check local agents for basis when doing a RPCMulti call. #1009.

20211006.105406

  • Make validation run concurrently up to 50 DhtOps. This allows us to make progress on other ops when waiting for the network. #1005
  • FIX: Prevent the conductor from trying to join cells to the network that are already in the process of joining. #1006
  • Fixed a bug when creating an entry with ChainTopOrdering::Relaxed, in which the header was created and stored in the Source Chain, but the actual entry was not.
  • Geneis ops will no longer run validation for the authored node and only genesis self check will run. #995
  • Update to lair 0.0.7 which updates to rusqlite 0.26.0 #1023
    • provides bundled-sqlcipher-vendored-openssl to ease build process on non-windows systems (windows is still using bundled which doesn’t provide at-rest encryption).
  • Update to rusqlite 0.26.0 #1023
    • provides bundled-sqlcipher-vendored-openssl to ease build process on non-windows systems (windows is still using bundled which doesn’t provide at-rest encryption).
  • Fix rpc_multi bug that caused all request to wait 3 seconds. #1009
  • Fix to gossip’s round initiate. We were not timing out a round if there was no response to an initiate message. #1014.
  • Make gossip only initiate with agents that have info that is not expired. #1014.

20210929.090317

  • Refactor conductor to use parking lot rw lock instead of tokio rw lock. (Faster and prevents deadlocks.). #979.

Changed

  • The scheduler should work now

Changed

  • query_gossip_agents, query_agent_info_signed, and query_agent_info_signed_near_basis are now unified into a single query_agents call in KitsuneP2pEvent
  • Adds a prototype protocol for checking consistency in a sharded network.

Added

  • Added support for #[hdk_extern(infallible)]

20210922.083906

  • Adds experimental feature for one storage agent per space to kitsune tuning params. gossip_single_storage_arc_per_space.
  • Adds the ability to lower the synchronous level for the sqlite backend to the conductor config. db_sync_level. See sqlite documentation. This allows running on slower HDD but can result in corrupted databases and is not recommended for production or SSDs.
  • Fixes bug where WAL mode was set on every opening connection.
  • Added helper functions to WebAppBundle and AppManifest to be able to handle these types better in consuming applications.

Changed

  • hdk: schedule function now takes a String giving a function name to schedule, rather than a Duration

Added

  • Added Schedule enum to define schedules

20210916.085414

Changed

  • HDK sys_time now returns a holochain_zome_types::Timestamp instead of a core::time::Duration.
  • Exposes UninstallApp in the conductor admin API.
  • Added the hc web-app sub-command for bundling up a UI with a previously created hApp bundle. It uses the same same behavior as hc dna and hc app to specify the .yaml manifest file.
  • Added UninstallApp command.
  • Added the hc web-app subcommand, with the exact same behaviour and functionality as hc dna and hc app.
  • Added WebAppManifest to support .webhapp bundles. This is necessary to package hApps together with web UIs, to export to the Launcher and Holo.

Fixed

  • Crate now builds with --no-default-features

20210901.105419

Note: The following crates could not be published to crates.io due to build errors:

  • hdk_derive-0.0.7
  • hdk-0.0.105
  • holochain_state-0.0.5
  • holochain_conductor_api-0.0.5
  • holochain_cascade-0.0.5”,
  • holochain_test_wasm_common-0.0.5
  • holochain-0.0.105

20210825.101130

  • Updates lair to 0.0.4 which pins rcgen to 0.8.11 to work around rustls/rcgen#63

Changed

  • CreateInput, DeleteInput, DeleteLinkInput structs invented for zome io
  • EntryDefId merged into CreateInput

Added

  • ChainTopOrdering enum added to define chain top ordering behaviour on write

20210817.185301

Fixed

  • This release solves the issues with installing happ bundles or registering DNA via the admin API concurrently. #881.

Changed

  • Header builder now uses chain top timestamp for new headers if in the future
  • Timestamps in headers require strict inequality in sys validation
  • BREAKING: CONDUCTOR CONFIG CHANGE–related to update to lair 0.0.3
    • passphrase_service is now required
      • The only implemented option is danger_insecure_from_config

Example

---
passphrase_service:
  type: danger_insecure_from_config
  passphrase: "foobar"
  • Updated to lair 0.0.3
    • switch to sqlite/sqlcipher for keystore backing database
    • enable encryption via passphrase (not on windows)

Changed

  • hdk: sys_time returns Timestamp instead of Duration

Added

  • hdk: Added accept_countersigning_preflight_request

  • hdk: Added session_times_from_millis

  • hdk: Now supports creating and updating countersigned entries

  • hdk: Now supports deserializing countersigned entries in app entry try_from

  • hdk: implements multi-call for:

    • remote_call
    • call
    • get
    • get_details
    • get_links
    • get_link_details

    We strictly only needed remote_call for countersigning, but feedback from the community was that having to sequentially loop over these common HDK functions is a pain point, so we enabled all of them to be async over a vector of inputs.

Added

  • Countersigning related functions and structs

20210722.172107

Known Issues ❗

  • We’ve become aware of a bug that locks up the conductor when installing happ bundles or registering DNA via the admin API concurrently. Please perform these actions sequentially until we’ve resolved the bug.

Fixed

  • Concurrent zome calls could cause the init() zome callback to run multiple times concurrently, causing HeadMoved errors. This is fixed, so that init() can only ever run once.
    • If a zome call has been waiting for another zome call to finish running init() for longer than 30 seconds, it will timeout.

Changed

  • Apps now have a more complex status. Apps now can be either enabled/disabled as well as running/stopped, the combination of which is captured by three distinctly named states:
    • “Running” (enabled + running) -> The app is running normally
    • “Paused” (enabled + stopped) -> The app is currently stopped due to some minor problem in one of its cells such as failed network access, but will start running again as soon as it’s able. Some Cells may still be running normally.
    • “Disabled” (disabled + stopped) -> The app is stopped and will remain so until explicitly enabled via EnableApp admin method. Apps can be disabled manually via DisableApp, or automatically due to an unrecoverable error in a Cell.
  • Some admin methods are deprecated due to the app status changes:
    • ActivateApp is deprecated in favor of EnableApp
    • DeactivateApp is deprecated in favor of DisableApp
  • Apps will be automatically Paused if not all of their cells are able to join the network during startup

Added

  • InstallAppBundle command added to admin conductor API. #665
  • DnaSource in conductor_api RegisterDna call now can take a DnaBundle #665
  • New admin interface methods:
    • EnableApp (replaces ActivateApp)
    • DisableApp (replaces DeactivateApp)
    • StartApp (used to attempt to manually restart a Paused app)
  • Using the 3 level PLRU instance cache from latest holochain wasmer v0.0.72

Changed

  • hdk: fixed wrong order of recipient and sender in x_25519_x_salsa20_poly1305_decrypt

20210624.155736

❗ Performance impact

Please navigate to the holochain crate release notes further down for details on the performance impact in this release.

This version contains breaking changes to the conductor API as well as a major upgrade to the underlying Wasm runtime.

❗ Performance impact

The version of wasmer that is used in this holochain release contains bugs in the scoping of wasmer modules vs. instances, such that it blocks the proper release of memory and slows down execution of concurrent Wasm instances. While we were able to at least mitigate these effects and are coordinating with wasmer to find a proper solution as soon as possible.

The severity of these issues increases with cell concurrency, i.e. using multiple cells with the same DNA. Application development with a single conductor and a few cells are expected to work well unless your machine has serious resource restrictions.

Added

  • InstallAppBundle command added to admin conductor API. #665
  • DnaSource in conductor_api RegisterDna call now can take a DnaBundle #665

Removed

  • BREAKING: InstallAppDnaPayload in admin conductor API InstallApp command now only accepts a hash. Both properties and path have been removed as per deprecation warning. Use either RegisterDna or InstallAppBundle instead. #665
  • BREAKING: DnaSource(Path) in conductor_api RegisterDna call now must point to DnaBundle as created by hc dna pack not a DnaFile created by dna_util #665

CHANGED

  • Updated to a version of holochain_wasmer that includes a migration to wasmer v2+. #773, #801, #836
  • Introduced a simple instance cache to mitigate and potentially outweigh the effects of the aforementioned wasmer conditions #848

Removed

  • temporarily removed install_app from hc: its not clear if we should restore yet as mostly should be using install_app_bundle #665

Changed

  • BREAKING: All references to "uuid" in the context of DNA has been renamed to "uid" to reflect that these IDs are not universally unique, but merely unique with regards to the zome code (the genotype) #727

Changed

  • Added HdkT trait to support mocking the host and native rust unit tests

Added

  • Added sign_ephemeral and sign_ephemeral_raw

Changed

  • Signature is a 64 byte ‘secure primitive’

Changed

  • Named bytes fixturators like SixtyFourBytes are now fixed length arrays

Added

  • Added SixtyFourBytesVec to work like the old Vec<u8> implementation

[20210304.120604]

This will include the hdk-0.0.100 release.

Changed

  • hdk: fixup the autogenerated hdk documentation.

20210226.155101

Global

This release was initiated for publishing the HDK at version 0.0.100-alpha.1. We are in the process of redefining the release process around this repository so rough edges are still expected at this point.

Added

  • Added App Validation workflow that runs app validation as authority #330
  • Added validation package to entry defs see for usage #344
  • Implemented the emit_signals host function #371, which broadcasts a signal across all app interfaces (fine-grained pub/sub to be done in future work)
  • get_details on a HeaderHash now returns the updates if it’s an entry header
  • call host fn (This is an actual function not a macro). Allows you to call a zome that is installed on the same conductor. #453
  • Added create link HeaderHash to the Link type
  • remote_signal host function to send a signal to a list of agents without blocking on the responses. See #546 or the docs for the hdk.
  • hc utility. Work with DNA and hApp bundle files, set up sandbox environments for testing and development purposes, make direct admin calls to running conductors, and more.

Changed

  • BREAKING: get_details and get_links_details return SignedHeaderHashed instead of the header types #390
  • BREAKING: ZomeInfo now returns the ZomeId #390
  • BREAKING: HoloHash now serializes as a plain 39-byte sequence, instead of a {hash, hash_type} structure #459
  • BREAKING: (Almost) all HDK functions have been converted from macros to functions #478
  • Admin interface method install_app has its app_id field renamed to installed_app_id so as not to conflict with the future concept of an “app id”
  • Admin interface method list_active_app_ids renamed to list_active_apps
  • BREAKING: JSON replaced with YAML for DNA Properties as well as the DNA manifest (dna.yaml instead of dna.json) #592
  • BREAKING: format of AppInfo changed

Removed

  • The dna_util has absorbed by the new hc utility.

Fixed

  • If installing the same app_id twice, previously the second installation would overwrite the first. Now it is an error to do so.