forked from TrueCloudLab/frostfs-contract
d95bc53589
There is a need to return similar structure of information about the storage nodes from the contract storage readers. In previous implementation some methods didn't return node state which can differ with the one encoded in the node's BLOB. Define `Node` structure of the information about the storage nodes recorded in the contract storage. Return `[]Node` from all related methods. Also improve docs of touched contract methods. Signed-off-by: Leonard Lyubich <ctulhurider@gmail.com>
13 KiB
13 KiB
Changelog
Changelog for NeoFS Contract
Unrelease
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.x
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 callsAbort
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 updateNodeInfo
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
andnetmap.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 processisUpdate
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 fromNeoFS
contract uses direct GAS transfer to contract address for deposit.- Unused transfer description variables in
Balance
contract and total function inAlphabet
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 forNeoFS
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 toneofs.AlphabetList
.neofs.InnerRingUpdate
renamed toneofs.AlphabetUpdate
and it producesAlphabetUpdate
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
andCommittee
methods inNetmap
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.