Skip to content

Structured containers#534

Merged
roman-khimov merged 3 commits intomasterfrom
feature/structured-containers
Nov 21, 2025
Merged

Structured containers#534
roman-khimov merged 3 commits intomasterfrom
feature/structured-containers

Conversation

@cthulhu-rider
Copy link
Contributor

@cthulhu-rider cthulhu-rider commented Nov 5, 2025

further plan:

  1. re-implement everything using new storage items
  2. drop binaries from the storage

@cthulhu-rider cthulhu-rider force-pushed the feature/structured-containers branch 5 times, most recently from 6451c9a to e84eb25 Compare November 6, 2025 14:28
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 6, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade. If new method is missing, SN falls back to old methods.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 6, 2025
This will make it easier to support nspcc-dev/neofs-contract#534.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 6, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade. If new method is missing, SN falls back to old methods.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 6, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 6, 2025
This will make it easier to support nspcc-dev/neofs-contract#534.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 6, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade. If new method is missing, SN falls back to old methods.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 6, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
@cthulhu-rider cthulhu-rider force-pushed the feature/structured-containers branch 5 times, most recently from 5f18533 to 3131744 Compare November 11, 2025 17:35
@codecov
Copy link

codecov bot commented Nov 11, 2025

Codecov Report

❌ Patch coverage is 63.22188% with 121 lines in your changes missing coverage. Please review.
✅ Project coverage is 63.12%. Comparing base (da91068) to head (d70e632).
⚠️ Report is 7 commits behind head on master.

Files with missing lines Patch % Lines
contracts/container/contract.go 64.39% 94 Missing ⚠️
internal/proto/message.go 33.33% 16 Missing ⚠️
internal/proto/encoding.go 72.22% 10 Missing ⚠️
internal/proto/util.go 80.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #534      +/-   ##
==========================================
- Coverage   63.55%   63.12%   -0.43%     
==========================================
  Files          25       28       +3     
  Lines        2763     3081     +318     
==========================================
+ Hits         1756     1945     +189     
- Misses       1001     1130     +129     
  Partials        6        6              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cthulhu-rider cthulhu-rider force-pushed the feature/structured-containers branch from 3131744 to d1e5dbd Compare November 11, 2025 18:16
@cthulhu-rider cthulhu-rider marked this pull request as ready for review November 12, 2025 06:59
@cthulhu-rider cthulhu-rider force-pushed the feature/structured-containers branch from d1e5dbd to bbd8249 Compare November 12, 2025 11:08
@cthulhu-rider cthulhu-rider marked this pull request as draft November 12, 2025 11:42
@cthulhu-rider cthulhu-rider force-pushed the feature/structured-containers branch from bbd8249 to d93274d Compare November 12, 2025 12:53
@cthulhu-rider cthulhu-rider marked this pull request as ready for review November 12, 2025 13:31
@cthulhu-rider cthulhu-rider force-pushed the feature/structured-containers branch from d93274d to c42e6e2 Compare November 14, 2025 10:41
Copy link
Member

@roman-khimov roman-khimov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really neat. Compatible serialization/deserialization is cool. NEF has grown substantially, but it gives a lot of potential for other use cases as well.

@roman-khimov roman-khimov merged commit a129fac into master Nov 21, 2025
8 of 10 checks passed
@roman-khimov roman-khimov deleted the feature/structured-containers branch November 21, 2025 14:34
carpawell added a commit that referenced this pull request Nov 24, 2025
It is required for v0.25.2 hotfix release.
carpawell added a commit that referenced this pull request Nov 24, 2025
It is required for v0.25.2 hotfix release.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
This will make it easier to support nspcc-dev/neofs-contract#534.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade. If new method is missing, SN falls back to old methods.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Within nspcc-dev/neofs-contract#449, there is
a need to store containers as VM structs. Since
nspcc-dev/neofs-contract#534, struct items are
stored for new containers. This also needs to be done for containers
created before the upgrade.

Since doing this in a contract update transaction turned out to be too
GAS-intensive, this implements structuring through the IR background
process. Specialized method is called iteratively doing the same thing,
but for several containers at a time.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Brings nspcc-dev/neofs-contract#534.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
This will make it easier to support nspcc-dev/neofs-contract#534.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade. If new method is missing, SN falls back to old methods.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Within nspcc-dev/neofs-contract#449, there is
a need to store containers as VM structs. Since
nspcc-dev/neofs-contract#534, struct items are
stored for new containers. This also needs to be done for containers
created before the upgrade.

Since doing this in a contract update transaction turned out to be too
GAS-intensive, this implements structuring through the IR background
process. Specialized method is called iteratively doing the same thing,
but for several containers at a time.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Within nspcc-dev/neofs-contract#449, there is
a need to store containers as VM structs. Since
nspcc-dev/neofs-contract#534, struct items are
stored for new containers. This also needs to be done for containers
created before the upgrade.

Since doing this in a contract update transaction turned out to be too
GAS-intensive, this implements structuring through the IR background
process. Specialized method is called iteratively doing the same thing,
but for several containers at a time.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Within nspcc-dev/neofs-contract#449, there is
a need to store containers as VM structs. Since
nspcc-dev/neofs-contract#534, struct items are
stored for new containers. This also needs to be done for containers
created before the upgrade.

Since doing this in a contract update transaction turned out to be too
GAS-intensive, this implements structuring through the IR background
process. Specialized method is called iteratively doing the same thing,
but for several containers at a time.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Within nspcc-dev/neofs-contract#449, there is
a need to store containers as VM structs. Since
nspcc-dev/neofs-contract#534, struct items are
stored for new containers. This also needs to be done for containers
created before the upgrade.

Since doing this in a contract update transaction turned out to be too
GAS-intensive, this implements structuring through the IR background
process. Specialized method is called iteratively doing the same thing,
but for several containers at a time.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Brings nspcc-dev/neofs-contract#534.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
This will make it easier to support nspcc-dev/neofs-contract#534.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade. If new method is missing, SN falls back to old methods.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Will become available with nspcc-dev/neofs-contract#534
upgrade.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 25, 2025
Within nspcc-dev/neofs-contract#449, there is
a need to store containers as VM structs. Since
nspcc-dev/neofs-contract#534, struct items are
stored for new containers. This also needs to be done for containers
created before the upgrade.

Since doing this in a contract update transaction turned out to be too
GAS-intensive, this implements structuring through the IR background
process. Specialized method is called iteratively doing the same thing,
but for several containers at a time.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 28, 2025
Brings nspcc-dev/neofs-contract#534.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit to nspcc-dev/neofs-node that referenced this pull request Nov 28, 2025
This will make it easier to support nspcc-dev/neofs-contract#534.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants