네오(Neo) SPCC는 NeoFS Node v0.51.0을 시작으로 일련의 NeoFS 릴리스를 발표했습니다. 이 릴리스에는 가변 NEP-11 컨테이너, 동기식 컨테이너 작업, 세션 토큰 v2 도입 등 프로토콜 수준의 변경 사항이 포함되어 있습니다. 함께 제공되는 NeoFS SDK Go v1.0.0-rc.17은 이러한 기능을 위한 기본 라이브러리 지원을 제공하며, XK6-NeoFS v0.2.1은 부하 테스트 확장 프로그램의 안정성 수정 및 종속성 업그레이드를 포함합니다. 테스트넷 업그레이드는 이미 완료되었으며, 메인넷은 조만간 완료될 예정입니다.
NeoFS 노드 v0.51.0
NeoFS 노드 v0.51.0 릴리스에는 여러 가지 중요한 프로토콜 변경 사항이 포함되어 있습니다. 이제 컨테이너는 온체인에서 변경 가능한 NEP-11 토큰으로 표현되며, 스토리지 노드와 이너링 노드 모두 createV2 및 getInfo 포함한 새로운 컨테이너 계약 메서드와 setAttribute 및 removeAttribute 와 같은 속성 관리 메서드를 지원하여 더욱 풍부한 온체인 컨테이너 관리 API를 제공합니다. 속성 설정 및 제거를 위한 해당 CLI 명령이 container 섹션에 추가되었습니다.
컨테이너 작업인 Put , Delete 및 SetExtendedACL 이제 스토리지 노드에서 동기적으로 처리되며, 이전의 비동기 흐름을 대체합니다. 이러한 변경으로 클라이언트 측 로직이 간소화되어 폴링이나 최종 일관성을 기다릴 필요가 없어졌습니다. 또한 __NEOFS__LOCK_UNTIL 속성을 설정하여 컨테이너를 삭제로부터 잠글 수 있으며, 잠긴 컨테이너를 삭제하려고 하면 스토리지 노드에서 CONTAINER_LOCKED 상태를 반환합니다.
세션 토큰 v2가 스택 전체에 도입되었습니다. 이너링 노드와 스토리지 노드 모두 컨테이너 및 객체 작업에 새로운 토큰 형식을 지원하며, v2 토큰 생성을 위한 새로운 CLI 명령어도 제공됩니다. API 버전 2.18 이전 버전을 사용하는 잠금 객체 및 툼스톤 객체는 더 이상 허용되지 않습니다.
성능 측면에서 메타베이스 최적화는 잠금 정보 체계를 재구성하고 기존의 가비지 구조를 제거하여 객체 삭제 속도를 향상시켰습니다. 객체 서비스 개선 사항은 특히 이레이저 코딩 컨테이너(EC)를 대상으로 합니다. 이제 EC 파트가 동시에 배치되고, 읽기 및 쓰기 작업 간에 샤드 순서가 일관되게 유지되며, EC 컨테이너에서 원시 데이터 요청이 지원됩니다. 다중 규칙 EC 시나리오에서 RANGE 요청 연속성 문제도 수정되었습니다. EC 컨테이너에서 $ 링크(Chainlink) 객체 검색이 지원되며, $ 링크(Chainlink) 객체를 사용할 수 없는 경우에도 크기 분할 객체는 계속 사용할 수 있습니다. 객체-샤드 배치가 최적화되었으며, 제어 서비스를 통해 삭제 요청된 객체는 가비지 컬렉션 대기열에 추가되지 않고 즉시 삭제됩니다.
fschain_autodeploy , without_mainnet , governance.disable , fee.main_chain , contracts 등 더 이상 사용되지 않는 몇 가지 이너링(IR) 구성 옵션이 제거되었습니다. v0.50.2에서 업그레이드하는 노드 운영자는 이러한 옵션을 IR 구성 파일에서 제거해야 합니다. 해당 옵션이 남아 있으면 노드가 시작되지 않습니다. 버전 3 및 4에서 자동 메타베이스 마이그레이션 기능도 제거되었습니다. 해당 버전을 사용하는 운영자는 업그레이드하기 전에 NeoFS Node v0.50.2를 사용하여 재동기화하거나 마이그레이션해야 합니다.
이번 버그 수정에서는 정상적인 종료 중 발생하는 이너 링 패닉, RoleManagement 대신 netmap 계약을 통한 잘못된 IR 노드 목록 저장, 드문 가비지 컬렉션 시나리오에서 스토리지 노드 종료 시 발생하는 교착 상태, 만료된 EC 파트가 스토리지 노드에 잘못 남아 있는 문제 등이 해결되었습니다.
NeoFS SDK Go v1.0.0-rc.17
이번 SDK 릴리스는 Node v0.51.0의 프로토콜 변경 사항을 위한 라이브러리 수준의 기반을 제공하며 NeoFS API 2.21과 호환됩니다. 세션 토큰 v2 지원이 완벽하게 구현되어 클라이언트가 컨테이너 및 객체 작업 모두에 대해 새로운 토큰 형식을 생성하고 사용할 수 있습니다.
새로운 컨테이너 속성 관리 API는 컨테이너 속성을 설정하고 제거하는 메서드와 새로운 속성 이름 세트를 제공합니다. 컨테이너 API 자체는 노드의 동작 변경 사항에 맞춰 동기식으로 변경되었습니다. 연결 풀은 이제 오류 계산에 슬라이딩 윈도우 방식을 사용하여 간헐적인 장애 발생 시 로드 밸런싱 결정을 개선합니다.
객체 생성 API가 리팩토링되어 object.New 가 새 객체 생성에 더욱 적합해졌으며, 기존의 InitCreation 메서드는 제거되었습니다. OID, CID 및 Address 유형에 대해 3방향 비교 메서드가 추가되어 더욱 표현력이 풍부한 정렬 및 순서 지정 작업을 제공합니다.
이번 릴리스에서는 불완전한 응답에 대한 잘못된 상태 처리 문제를 수정하고 NeoGo 종속성을 v0.116.0으로 업데이트했습니다.
XK6-NeoFS v0.2.1
k6용 NeoFS 부하 테스트 확장 프로그램의 안정성과 공정성을 개선하는 유지 관리 릴리스가 출시되었습니다. S3 테스트 중 발생하던 패닉 오류가 해결되었으며, 테스트 실행 중에 나타나던 불필요한 체크섬 경고도 제거되었습니다.
대상 노드 간 부하 분산이 더욱 균등해짐에 따라 벤치마킹 실행 중 핫스팟 현상이 감소했습니다. 빌드 요구 사항이 Go 1.24로 상향 조정되었으며, NeoFS SDK Go 버전이 1.0.0-rc.17로, AWS SDK가 1.39.0으로, k6 프레임워크 자체가 0.51.0에서 1.3.0으로 업데이트되는 등 모든 종속성이 개선되었습니다.
업그레이드 가이드
노드 운영자는 테스트넷 업그레이드를 진행하고 곧 있을 메인넷 배포를 준비해야 합니다. 이너링 운영자는 v0.51.0으로 업그레이드하기 전에 구성 파일을 검토하고 위에 나열된 사용 중단된 옵션을 제거해야 합니다. Metabase 버전 3 또는 4를 실행 중인 스토리지 노드 운영자는 자동 마이그레이션 경로가 제거되었으므로 이번 업그레이드 전에 v0.50.2를 통해 마이그레이션을 완료해야 합니다.
전체 변경 로그 및 릴리스 자료는 아래 링크에서 확인하실 수 있습니다.
https://github.com/nspcc-dev/neofs-node/releases/tag/v0.51.0
https://github.com/nspcc-dev/neofs-sdk-go/releases/tag/v1.0.0-rc.17
https://github.com/nspcc-dev/xk6-neofs/releases/tag/v0.2.1






