2.14.0 - 2022-09-23 - Anmado (안마도, 鞍馬島)
NetmapSnapsotRPC tonetmap.NetmapService(#228)- Well-known object attribute
FilePathofobject.Header.Attribute(#238) MAINTENANCEvalue ofnetmap.NodeInfo.Stateenum (#237)NODE_UNDER_MAINTENANCEcode tostatus.CommonFailstatus section (#237)- Well-known node attribute
ExternalAddrofnetmap.NodeInfo.Attribute(#235)
- Object session can be issued for a group of objects (#202)
- System network parameters are explicitly declared in
NetworkConfig.Parameter(#214)
2.13.1 - 2022-08-01
EACL_NOT_FOUNDstatus code to thecontainersection (#230)
2.13.0 - 2022-06-21 - Yeonpyeongdo (연평도, 延坪島)
- Extended headers usage clarification (#204)
OUT_OF_RANGEstatus code to theobjectsection (#208)- Disabling homomorphic hashing container setting (#217)
LOCKobject behaviour clarification (#221)- Storage group members uniqueness constraint (#222)
- WalletConnect signature scheme (#206)
SIGNATURE_VERIFICATION_FAILstatus code to theCommonFailsection (#225)
- Storage group's expiration epoch field (#205)
- English language typos (#216)
2.12.0 - 2022-02-22 - Heuksando (흑산도, 黑山島)
Network magic, main status codes, object locks and notifications.
magic_numberfield toRequestMetaHeadermessage (#82)WRONG_MAGIC_NUMBERstatus code toCommonFailsection (#82)- Well-known object attributes related to notifications
__NEOFS__TICK_EPOCHand__NEOFS__TICK_TOPIC(#193) ACCESS_DENIEDstatus code toObjectsection (#189)OBJECT_NOT_FOUND,CONTAINER_NOT_FOUNDandOBJECT_ALREADY_REMOVEDstatus codes (#190)TOKEN_NOT_FOUNDandTOKEN_EXPIREDstatus codes toSessionsection (#191)LOCKvalue ofobject.Typeenum (#194)Lockmessage with payload content ofLOCKobjects (#194)LOCKEDandLOCK_NON_REGULAR_OBJECTstatus codes toObjectsection (#194)schemefield of typeSignatureSchemetoSignaturemessage which determines signature scheme (#55)SignatureRFC6979message (#203)
- Type of
signaturefield inContainerServicerequests toSignatureRFC6979(#203)
2.11.0 - 2021-12-02 - Sinjido (신지도, 薪智島)
Subnets and status responses.
Statusmessage structure (#150)statusfield ofStatustype toResponseMetaHeadermessage (#150)Subnetmessage structure (#180)subnetfield ofSubnettype toPlacementPolicymessage (#179)
- Subnet attributes in
NodeInfo(#181)
2.10.0 - 2021-10-14 - Udo (우도, 牛島)
NNS integration, detailed network info and ACL rules for non-native services.
- ACL header type for services (#173)
- Side chain block duration and NeoFS network config fields in
NetworkInfomessage (#172) - Well-known container attributes for NNS integration (#177)
2.9.1 - 2021-08-26
- String presentation of object type enum.
2.9.0 - 2021-08-16 - Anmyeondo (안면도, 安眠島)
Support "common prefix" attribute match operation to simplify filesystem directory tree-like structures implementation in NeoFS protocol gateways.
COMMON_PREFIXobject attribute match type.- Storage node's attribute escape symbol description.
2.8.0 - 2021-06-25 - Muuido (무의도, 舞衣島)
Storage nodes with a group of network endpoints.
addressfield ofnetmap.NodeInfomessage becamerepeated.
2.7.0 - 2021-06-03 - Seongmodo (석모도, 席毛島)
Container service sessions.
ContainerSessionContextmessage.ContainerSessionContextvalue ofcontextoneof toSessionToken.Bodymessage.
session_tokenfield of typesession.SessionTokentoGetResponse.Bodymessage.signaturefield of typerefs.SignaturetoGetResponse.Bodymessage.
session_tokenfield of typesession.SessionTokentoGetExtendedACLResponse.Bodymessage.
2.6.0 - 2021-05-07 - Daecheongdo (대청도, 大靑島)
- Reputation package with reputation service and corresponding type definitions.
2.5.0 - 2021-03-19 - Jebudo (제부도, 濟扶島)
This release contains changes and fixes for NEO3 testnet launch.
- Well-known object attribute
Content-Type.
- Namespace for C# has been changed to
Neo.FileStorage.API.
2.4.0 - 2021-02-26 - Ganghwado (강화도, 江華島)
This release provides new RPC method to fetch network info from storage node. By getting current epoch value, application might set up correct expiration values in the objects.
netmap.NetworkInforequest for getting node's network view.- Release instructions.
- Clarified processing of empty search query in
object.SearchRPC. - Specified connection of tombstone expiration value with well-known
__NEOFS__EXPIRATION_EPOCHobject attribute.
2.3.0 - 2021-02-11 - Seonyudo (선유도, 仙遊島)
This release brings support for nodes to exchange information about disk space used by each Container. This information will be used by Inner Ring nodes to calculate basic rewards and payments.
Another significant change is UN/LOCODE support for node's attributes describing
geographical location. From now on, most of the geographical attributes will be
calculated automatically from a single UN-LOCODE attribute in a deterministic
manner.
- Added
container.AnnounceUsedSpacerequest for announcing disk space consumed by container's objects on the node - Added
Continentwell-known node's attribute - Added
SubDivCodewell-known node's attribute - Added
Locationwell-known node's attribute - Added
CounrtyCodewell-known node's attribute - Added
STRING_NOT_EQUALmatch type - Added
NOT_PRESENTmatch type - Added JSON names for search request filter fields
Locodewell-known node's attribute renamed toUN-LOCODE. It will be used as a base for calculating most of the node's geographical attributes.Regionwell-known node's attribute renamed toSubDiv
- Removed
Citywell-known node's attribute - Removed
Regionwell-known node's attribute
2.2.1 - 2021-01-15
Define "well-known" X-headers
- Description of the format of "well-known" X-headers that affect system behavior
- X-header key to netmap epoch value
- X-header key to netmap lookup depth value
2.2.0 - 2020-12-30 - Yeouido (여의도, 汝矣島)
Storage Groups based Data Audit updates
audit.DataAuditResultmessage for recording audit result is added
object.ShortHeadernow haspayload_hashandhomomorphic_hashfields
2.1.1 - 2020-12-17
Minor documentation fixes
- Clarify JSON encoding for
ObjectID,ContainerIDandOwnerID - Clarify object field usage in some requests' eACL filters
2.1.0 - 2020-12-11 - Modo (모도, 茅島)
Object split and deletion improvements, documentation clarifications.
$Object:objectIDadded to the list of available ACL and Search filterssplit_idfield added inobject.Object.header$Object:split.splitIDsearch filter added- json_name notation added to
acl.EACLTable.Versionfield - Adding
tombstonefield with newly created tombstone address field toobject.DeleteResponse.Body tombstonepackage added- Tombstone payload definition added as
tombstone.Tombstonemessage SplitInfomessage added toobjectpackagesplit_infofield added toobject.GetResponse.Bodysplit_infofield added toobject.HeadResponse.Bodysplit_infofield added toobject.GetRangeResponse.Bodyrawflag added inobject.GetRangeRequest.Body
- Clarified special search index descriptions
- Clarified various types encoding formats descriptions
$Object:CHILDFREEfilter description removed from well-known list$Object:LEAFfilter description removed from well-known list
2.0.2 - 2020-10-27
More "well-known" application attributes and documentation updates.
- Added "well-known" attributes list for extended ACL and object search filters
- Added
Name,Timestamp"well-known" application attributes for container - Added
Name,FileName,Timestamp"well-known" application attributes for object
BearerToken.owner_idfield description changedSubnetcontainer attribute now has__NEOFS__prefix- Search and ACL filters now have
keyandvaluefields
2.0.1 - 2020-10-19
Documentation updates and JSON field names definition
- Added "well-known" attributes list for
netmap.NodeInfo - Added "well-known" attributes list for objects
- Added "well-known" attributes list for containers
- JSON field names defined for most of data structures
- Documentation updated for all packages fixing typos and minor inaccuracies
acl.EACLRecord.Target.key_listfield renamed tokeysfor consistency
- Human-written documentation will now be only in NeoFS Specification
2.0.0 - 2020-09-07 - Jindo (진도, 珍島)
Major API refactoring and simplification.
neo.fs.v2prefix added to all package namescontainer.Attributesfield addedrefs.ContainerIDadded as a separate typerefs.OwnerIDadded as a separate type- Object Search query language defined in
object.SearchRequest.Body.filter netmappackage addedrefs.Signaturedefined as a separate typesession.SessionTokennow has context information for each servicerefs.Versiondefined as a separate typerefs.Versionfield added to all messages stored in SmartContractsrefs.Checksumdefined as a separate typenetmap.LocalNodeInforequest added to get actual information from connected peer
- Extended ACL Table format changed
- Protobuf definitions style changed to follow Google Style Guide
SystemandExtendedObject headers are merged into onobject.Headertypeobject.UserHeaderrenamed toobject.Header.Attributerefs.ObjectIDis now a hash of theobject.Headerfield, which contains hash of payloadStorageGroupinformation moved to Object's payloadnetmap.NodeInfo.optionsrenamed tonetmap.NodeInfo.attributesand it uses a separatenetmap.NodeInfo.Attributetype now.netmap.NodeInfo.Attributetype now has a list of parents to construct a tree- Session Token renamed to
session.SessionTokenfromsession.Token - All Requests and Responses now have a common "body-meta-verify" structure
- Meta and Verification headers now follow Matryoshka-style composition
- SessionToken and BearerToken are now part of Meta header
- Object placement policy format is simplified and defined in
netmappackage object.Head()request now returns either short header or full header with a signature
- gogoproto is not used anymore
decimalpackage merged intoaccountingpackagequerypackage merged intoobjectpackagestoragegrouppackage merged intoobjectpackagebootstrappackage merged intonetmappackagestatepackage removedservicepackage removed. Merged withsessionpackagestatepackage removed. It will be implementation specific part of neofs-nodeSpreadMapfunctionality removed fromnetmappackage- Unixtime support removed from creation timestamps, leaving only Epoch number
Linktype removed from Object headersRedirecttype support removed from Object headers- Withdrawal and Account Lock functionality removed from
accountingservice - Deposit functionality removed from
accountingservice - Settlement functionality removed from
accountingservice
1.2.0 - 2020-07-08
acl.EACLRecord,acl.EACLTablemessages for the table of extended ACL rules.
1.1.0 - 2020-06-18
- Extended ACL support in container service.
- Bearer token support in the object service requests.
- Extended headers for the requests in
service.RequestMetaHeader
1.0.0 - 2020-05-16
Bump major release
0.7.5 - 2020-05-15
OwnerKeybytes field toservice.Token.TokenInfomessage.
0.7.4 - 2020-05-08
service.TokenLifetimemessage.
service.Tokenstructure.session.Session.CreateRPC signature.session.CreateRequeststructure.session.CreateResponsestructure.
0.7.3 - 2020-04-28
CreationPointdisabled stringer method.
0.7.2 - 2020-04-28
Rawboolean field toservice.RequestMetaHeader.Tokenmessage field toservice.RequestVerificationHeader.
Tokenmessage fromsessiontoservicepackage.Signaturemessage withSignone inservicepackage.
Tokenmessage structure.
Rawfield fromobject.GetRequestandobject.HeadRequestmessages.Tokenfield fromobject.PutRequest.PutHeaderandobject.DeleteRequestmessages.VerificationHeadermessage.
0.7.1 - 2020-04-20
- Method to change current node state. (
state.ChangeState)
0.7.0 - 2020-04-16
- A numerical field CopiesNumber into
object.PutRequest.PutHeadermessage.
0.6.1 - 2020-04-15
- State field into Bootstrap request.
- Request.State enum: Unknown, Online, Offline.
0.6.0 - 2020-04-02
- ACL package with enum of ACL targets.
- Use
BasicACLfield in container structure andcontainer.Putrequest.
0.5.0 - 2020-04-01
- Initial release