Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
241 lines (199 sloc) 9.52 KB

Safe Vault - Change Log


  • Set execution permission on safe_vault binary before packaging for release


  • Return AccessDenied when apps request to insert, delete or list auth keys instead of ignoring the request.
  • Use project's data directory as the root directory.
  • Upgrade safe-nd dependency to 0.4.0. This includes granular permissions for applications.
  • Change usage of idata term "kind" to "data".
  • Introduce IDataRequest to eliminate unwraps.
  • Handle refunds when errors are returned from the data handlers.
  • Deprecate Rpc::Refund to use Rpc::Response instead.
  • Send response to the client that sent the request instead of all connected clients.
  • Use GitHub actions for build and release.


  • This is a technical release without any changes from 0.19.1.


  • Add verbose command line flag.
  • Fix the UX problem related to the self-update process (requiring to have a network connectivity even if a user just wanted to display the --help menu).
  • Improve the release process, adding .zip and .tar.gz packages to distribution.


  • Rewrite the Vault code.
  • Support new data types (AppendOnlyData, unpublished sequenced/unsequenced MutableData, and unpublished ImmutableData).
  • Support coin operations.
  • Use quic-p2p for communication with clients.
  • Temporarily remove the Routing dependency.
  • Refactor the personas system into a new Vault architecture.
  • Use Rust stable / 2018 edition.


  • Improve Docker configuration scripts (thanks to @mattmccarty)
  • Use rust 1.22.1 stable / 2017-11-23 nightly
  • rustfmt 0.9.0 and clippy-0.0.174


  • Update dependencies.


  • Change test to use value of MAX_MUTABLE_DATA_ENTRIES rather than magic numbers.


  • Remove proxy rate exceed event.


  • Update to use Routing 0.32.2.


  • Use Routing definitions for group size and quorum.
  • Add dev config options to allow running a local testnet.
  • Update to use Routing 0.32.0.
  • Update to use Rust Stable 1.19.0 / Nightly 2017-07-20, Clippy 0.0.144, and rustfmt 0.9.0.
  • Improve DataManager tests.


  • Deprecate and remove support for Structured, PrivAppendable and PubAppendable Data.
  • Add support for MutableData instead.
  • MaidManagers only charge on put success now.
  • MaidManagers charge by directly storing the MsgIds and counting the number of them to determine the account balance.
  • MaidManagers support insertion and deletion of auth-keys to support auth-app paradigm in which all mutations on behalf of the owner of the account has to go via the MaidManagers.


  • Upgrade to routing 0.28.5.
  • Migrate from rustc-serialize to serde.
  • Migrate from docopt to clap.
  • Implement invitation-based account creation.


  • Upgrade to routing 0.28.4.


  • Upgrade to routing 0.28.2.


  • Migrate to routing 0.28.0.
  • Use a single event loop for routing and safe_vault.
  • Fix issues with account creation and data requests.


  • Enforce data size caps.
  • Enable new delete mechanism.


  • Handle appendable data types in data manager.
  • Fix a synchronisation problem in Put/Post handling.


  • Use rust_sodium instead of sodiumoxide.
  • Upgrade to routing 0.23.4, with merged safe_network_common.


  • Revert to routing 0.23.3.


  • Update the crate documentation.
  • Upgrade to routing 0.25.0.


  • Remove spammy trace statement.


  • Set default Put limit to 500 and default chunk store limit to 2 GB.


  • Prevent vaults from removing existing chunk_store when terminating.


  • Fix chunk store directory handling.
  • Remove remaining uses of the thread-local random number generator to make tests deterministic.
  • Make data manager statistics less verbose to reduce spam in the logs.


  • Merge chunk_store into safe_vault and make its root directory configurable.
  • Implement caching for immutable data.


  • Migrate to the mio-based Crust and the new Routing Request/Response API.
  • Handle GetAccountInfo requests to provide information about a client's used and remaining chunk count.


  • Allow passing --first via command line to start the first Vault of a new network.
  • Updated dependencies.


  • Several tweaks to churn handling in data_manager.
  • Implement process to automatically build release binaries.
  • Re-organise the tests to use mock Crust instead of mock Routing.
  • Improve logging.
  • Fix several bugs.


  • Restart routing if it failed to join the network.
  • Reimplement the refresh algorithm for structured and immutable data to make it less wasteful and more reliable.


  • Major change of persona strategy regarding ImmutableData (removal of three personas)
  • Major refactoring of integration tests (uses mock Crust feature)
  • Default test runner to unit tests (previously run using the mock Routing feature)


  • Replaced use of local Client errors for those in safe_network_common
  • Swapped dependency on mpid_messaging crate for safe_network_common dependency
  • Removed Mpid tests from CI suite
  • Updated some message flows
  • Completed churn-handling for ImmutableDataManager
  • Added many unit tests
  • Fixed Clippy warnings
  • Several bugfixes


  • Accommodated updates to dependencies' APIs
  • Ensured that the network can correctly handle Clients doing a Get for ImmutableData immediately after doing a Put


  • Major refactor to accommodate changed Routing


  • Default to use real Routing rather than the mock
  • Updated config file to match Crust changes
  • Refactored flow for put_response
  • Added churn tests
  • Refactored returns from most persona functions to not use Result


  • Major refactor of production code and tests to match Routing's new API, allowing testing on a real network rather than a mock
  • Updated installers to match Crust's config/bootstrap file changes
  • Added tarball to packages being generated
  • Dropped usage of feature-gated items


  • MAID-1283 Rename repositories from "maidsafe_" to "safe_"


[0.1.2] - code clean up


  • Updated dependencies' versions
  • Fixed lint warnings caused by latest Rust nightly
  • Issue 117 meaningful type_tag
  • PR 124 integration test with client
    • client log in / log out
    • complete put flow
    • complete get flow

[0.1.0] - integrate with routing and safecoin farming initial work [rust-2 Sprint]

  • MAID-1107 Rename actions (changes in routing v0.1.60)
  • MAID-1008 Documentation
    • MAID-1009 Personas
      • ClientManager : MaidManager
      • NodeManager : PmidManager
      • Node : PmidNode
      • NAE : DataManager, VersionHandler
    • MAID-1011 Accounting
      • MaidAccount : create, update and monitor
      • PmidAccount : create, update and monitor
    • MAID-1010 Flows
      • PutData / PutResponse
      • GetData / GetResponse
      • PostData
  • MAID-1013 Complete unfinished code (if it will be covered by the later-on tasks in this sprint, explicitly mention it as in-code TODO comment), especially in
  • MAID-1014 Integration test with new routing and crust (vaults bootstrap and network setup)
    • MAID-1028 local joining test (process counting)
    • MAID-1016 network example (nodes populating)
  • MAID-1012 SafeCoin farming (new persona may need to be introduced, the task needs to be ‘expandable’ ) documentation
    • farming
    • account
  • MAID-1021 Implement handling for Safecoin farming rate
    • Farming rate determined by the Sacrificial copies.
    • Farming rate drops when more copies are available and rises when less copies are available.

[0.0.0 - 0.0.3]

  • VaultFacade initial implementation
  • Chunkstore implementation and test
  • Initial Persona implementation :
    • Implement MaidManager and test
    • Implement DataManager and test
    • Implement PmidManager and test
    • Implement PmidNode and test
    • Implement VersionHandler
  • Flow related work :
    • Complete simple Put flow and test
    • Complete simple Get flow and test
    • Complete Create Maid Account Flow
  • Installers (linux deb/rpm 32/64 bit, Windows 32 / 64. OSX)
  • Coverage analysis
You can’t perform that action at this time.