frostfs-contract/CHANGELOG.md

14 KiB

Changelog

Changelog for FrostFS Contract

Unreleased

Added

Changed

Removed

Updated

Fixed

Updating from v0.18.0

[0.18.0] - 2023-09-14 - Academy of Sciences Glacier

Added

  • Documentation for contract storage schema (#21)

Changed

  • container.Delete() now accepts public key along with token (#27)
  • Allow to check whether container was deleted with container.DeletionInfo() (#38)

Removed

  • subnet contract (#20)

Updated

Fixed

Updating from v0.17.0

[0.17.0] - 2023-04-13 - Furtwängler

Added

Changed

Removed

  • Notary disabled code from all contracts (#7)

Updated

  • neo-go to v0.99.4

Fixed

Updating from v0.16.0

0.16.0 - 2022-10-17 - Anmado (안마도, 鞍馬島)

Added

  • Support MAINTENANCE state of storage nodes (#269)

Changed

  • netmap.Snapshot and all similar methods return (#269)

Updated

  • NNS contract now sets domain expiration based on register arguments (#262)

Fixed

  • NNS renew now can only be done by the domain owner

Updating from v0.15.5

Update deployed Netmap contract using Update method: storage of the contract has been incompatibly changed.

0.15.5 - 2022-08-23

Updated

  • Update neo-go to v0.99.2 (#261)
  • Makefile now takes only v* tags into account (#255)

0.15.4 - 2022-07-27

Only a version bump to update manifest.

0.15.3 - 2022-07-22

Added

  • Allow to build archive from source (#250)

Changed

  • Update neo-go to the latest version
  • Use proper type for integer constants (#248)

0.15.2 - 2022-06-07

Added

  • container.Count method (#242)

Changed

  • Update neo-go to v0.99.0 (#246)

0.15.1 - 2022-04-13

Fixed

  • Max domain name fragement length (#238)

Added

  • netmap.UpdateSnapshotCount method (#232)
  • Notifications of successful container and storage node operations (#236)

Changed

  • Update neo-go to v0.98.2 (#234)

0.15.0 - 2022-03-23 - Heuksando (흑산도, 黑山島)

Fixed

  • Split UpdateState method to allow Alphabet nodes remove storage nodes from network map based on consensus decision in notary-enabled environment (#225)

Changed

  • Increase from 2 to 10 stored network maps in netmap contract (#224)
  • Use public keys instead of IRNode structures in neofs and netmap contracts (#222)

0.14.2 - 2022-02-07

Fixed

  • Remove duplicate records in NNS contract (#196)

Changed

  • Evict container estimations on every put (#215)
  • Update neo-go to v0.98.1

0.14.1 - 2022-01-24

Fixed

  • Remove migration routine for reputation contract update (#220)
  • Remove version check for subnet contract update (#220)

Added

  • Append version to Update arguments for subnet contract (#220)

0.14.0 - 2022-01-14 - Geojedo (거제도, 巨濟島)

Fixed

  • Sync Update method signature in NNS contract (#197)
  • Use current block index in all GetDisgnatedByRole invocations (#209)

Added

  • Version check during contract update (#204)

Changed

  • Use storage.RemovePrefix in subnet contract (#199)

Removed

  • Netmap contract hash usage in proxy contract (#205)
  • Legacy contract owner records from contract storage (#202)

0.13.2 - 2021-12-14

Fixed

  • Reputation contract migration (#201)

0.13.1 - 2021-12-08

Fixed

  • Specify container contract as owner of all container related domain zones (#194)

0.13.0 - 2021-12-07 - Sinjido (신지도, 薪智島)

Support of subnetwork contract from NeoFS API v2.11.0.

Fixed

  • Records with duplicate values are not allowed in NNS anymore (#165)
  • Allow multiple reputation.Put, container.PutCotnainerSize, neofsid.AddKey, neofsid.RemoveKey, neofs.InnerRingCandidateAdd, neofs.InnerRingCandidateRemove invocations in one block (#101)
  • netmap.UpdateState checks both node and alphabet signatures in notary enabled environment (#154)

Added

  • Version method in NNS contract (#158)
  • Subnet contract (#122)
  • netmap.Register method for notary enabled environment (#154)

Changed

  • Container contract throws panic if required container is missing (#142)
  • Container contract does not throw panic if deleting container is already removed (#142)
  • NNS stores root as regular TLD (#139)
  • Use testing framework from neo-go (#161)
  • Allow hyphen in domain names in NNS (#180)
  • Panic messages do not heave method name prefix anymore (#179)
  • OnNEP17Payment method calls Abort instead of panic (#179)
  • Allow arbitrary-level domains in NNS (#172)
  • Refactor (#169)

0.12.2 - 2021-11-26

Fixed

  • Domain owner check in container contract (#156)
  • Missing NNS related keys in container contract (#181)

Added

  • Update functions now provide contract version in data (#164)

0.12.1 - 2021-10-19

Fixed

  • Sanity checks for notary enabled environment in container contract (#149)

Added

  • NeoFS global configuration parameter ContainerAliasFee. This parameter used as additional fee for container registration with nice name alias (#148).

Changed

  • netmap.AddPeer method can update NodeInfo structures (#146)
  • netmap.Update allows to redefine any key-value pair of global config (#151)

0.12.0 - 2021-10-15 - Udo (우도, 牛島)

NNS update with native container names in container contract.

Fixed

  • Safe methods list in reputation contract manifest (#144)

Added

  • SOA record type support in NNS (#125)
  • Test framework for N3 contracts written in go (#137)
  • Unit tests for container and NNS contracts (#135, #137)
  • PutNamed method in container contract that registers domain in NNS (#135)

Changed

  • NNS contract supports multiple records of the same type (#125)

0.11.0 - 2021-09-22 - Mungapdo (문갑도, 文甲島)

Contract owners are removed, now side chain committee is in charge of contract update routine.

Fixed

  • Container contract does not throw PICKITEM panic when trying access non-existent container, instead panics with user-friendly message (#121)

Changed

  • NNS contract has been updated to the latest version from Neo upstream (#123)
  • Container contract does not throw panic on deleting non-existent container (#121)
  • Migrate methods renamed to Update (#128)
  • Contracts now throw panic if update routine fails (#130)
  • Side chain committee is able to update contracts (#107)

Removed

  • Contract owner arguments at deploy stage (#107)

0.10.1 - 2021-07-29

Changed

  • Version method returns encoded semver value (#98)

Removed

  • InitConfig methods from neofs and netmap contracts. Network configuration now provided as contract deploy parameter. (#115)

0.10.0 - 2021-07-23 - Wando (완도, 莞島)

Fixed

  • Alphabet contract does not emit GAS to proxy contract and does not check proxy contract script hash length at deploy stage if notary disabled (#106)

Added

  • Netmap contract stores block height when last epoch was applied and provides LastEpochBlock method to get it (#110)
  • NNS contract (#108)
  • Enhanced documentation for autodoc tools (#105)

Changed

  • Update neo-go to v0.96.0

Removed

  • v0.9.1 to v0.9.2 migration code (#104)

0.9.2 - 2021-07-01

Fixed

  • Execution of multiple container.Put, container.Delete, container.PutContainerSize and netmap.AddPeer invocations now possible in the single block (#100, #102).

Added

  • Target NeoFS API version in README.md.

Changed

  • Notary enabled images for neofs-dev-env do not contain predefined network map anymore.

0.9.1 - 2021-06-24

Fixed

  • Notification parameter types in container, neofs and netmap manifests (#94).
  • Method permissions in manifests (#96).

Added

  • Balance check before notification at container.Put method.

Removed

  • v0.8.0 to v0.9.0 migration code.

0.9.0 - 2021-06-03 - Seongmodo (석모도, 席毛島)

Session token support in container contract.

Fixed

  • _deploy methods process isUpdate argument now.

Added

  • Changelog file.
  • netmap.NetmapCandidates method.

Changed

  • Container contract now stores public key, signature and session token of new containers and extended ACL tables.
  • Most of the contract methods that invoked by inner ring do not return bool value anymore. Such methods throw panic instead.
  • Migrate methods now accept data.

Removed

  • Container and extended ACL signature checks in container contract.

0.8.0 - 2021-05-19 - Dolsando (돌산도, 突山島)

N3 Testnet RC2 compatible contracts.

Changed

  • Contract initialization moved to _deploy method.

Removed

  • Deposit method from NeoFS contract uses direct GAS transfer to contract address for deposit.
  • Unused transfer description variables in Balance contract and total function in Alphabet contract.

Updated

  • NEO Go to N3 RC2 compatible v0.95.0.

0.7.0 - 2021-05-04 - Daecheongdo (대청도, 大靑島)

Combine notary and non-notary work flows in smart contracts.

Fixed

  • Integers are not used as search prefixes anymore.

Added

  • Notary and non-notary work flows in all contracts. Notary can be disabled at contract initialization.
  • Processing contract in main chain to pay for NeoFS contract invocations from alphabet when notary enabled.
  • Fee payments at neofs.Withdraw invocation.

Changed

  • Reputation contract stores new global reputation structures.
  • All balance.transferX invocations are provided with encoded transfer details.

Removed

  • Cheque storage in NeoFS contract to decrease invocation costs.

0.6.0 - 2021-03-26 - Yeongheungdo (영흥도, 靈興島)

Governance update.

Fixed

  • Threshold (N) calculation.

Changed

  • Inner ring keys are accessed from NeoFSAlphabet role in side chain.
  • Alphabet keys are accessed from committee in side chain.
  • NeoFS contract now manages alphabet keys and do not update candidate list automatically.
  • NeoFS contract can be initiated with any non zero amount of alphabet keys now.
  • neofs.InnerRingList renamed to neofs.AlphabetList.
  • neofs.InnerRingUpdate renamed to neofs.AlphabetUpdate and it produces AlphabetUpdate event.
  • Netmap contract does not manage inner ring keys now.

Removed

  • neofs.IsInnerRing, netmap.InnerRingLost, netmap.Multiaddress, netmap.Committee, netmap.UpdateInnerRing methods.

0.5.1 - 2021-03-22

Fixed

  • Methods with notifications are no longer considered to be safe.

0.5.0 - 2021-03-22 - Jebudo (제부도, 濟扶島)

Fixed

  • Various typos.

Added

  • Proxy contract.
  • Multiaddress and Committee methods in Netmap contract.
  • List of safe methods in contract configs.

Changed

  • Smart contracts use read-only storage context where it is possible.
  • Netmap contract triggers clean-up methods on new epoch.
  • Contracts use interop.Hash160 and other type aliases instead of []byte.

Removed

  • Multi signatures in side chain now collected with native notary contract, thus side chain contracts do not use ballots anymore.

Updated

  • NEO Go to testnet compatible v0.94.0.

0.4.0 - 2021-02-15 - Seonyudo (선유도, 仙遊島)

Fixed

  • Old ballots are now removed before processing new ballot.

Added

  • Methods in container contract to store container size estimations.
  • common package that contains shared code for all contracts.
  • Contracts migration methods.

Updated

  • NEO Go to preview5 compatible v0.93.0.
  • Contract manifests.

0.3.1 - 2020-12-29

Preview4-testnet version of NeoFS contracts.

0.3.0 - 2020-12-29

Preview4 compatible contracts.