Impl Parameterized Deploys: Native Typed Parameters Support#314
Open
AndriiS-DevBrother wants to merge 8 commits into
Open
Impl Parameterized Deploys: Native Typed Parameters Support#314AndriiS-DevBrother wants to merge 8 commits into
AndriiS-DevBrother wants to merge 8 commits into
Conversation
AndriiS-DevBrother
marked this pull request as ready for review
January 9, 2026 14:15
spreston8
reviewed
Jan 10, 2026
spreston8
reviewed
Jan 10, 2026
spreston8
reviewed
Jan 10, 2026
spreston8
reviewed
Jan 10, 2026
spreston8
reviewed
Jan 10, 2026
spreston8
reviewed
Jan 10, 2026
Collaborator
|
Nice work. Pretty much all my comments are just improvements in test coverage for these changes. I think implementing some of them would ensure robustness. |
YuriiO-DevBrother
approved these changes
Jan 12, 2026
| private val deployStorageEnvConfig = LmdbEnvConfig(name = "deploystorage", maxEnvSize = 1 * gb) | ||
| private val blockStorageEnvConfig = LmdbEnvConfig(name = "blockstorage", maxEnvSize = 1 * tb) | ||
| private val dagStorageEnvConfig = LmdbEnvConfig(name = "dagstorage", maxEnvSize = 100 * gb) | ||
| // Increased from 1GB to 100GB to support large binary parameters in deploys (up to 256MB per parameter) |
Collaborator
There was a problem hiding this comment.
Could this increase in 100x could be handled by nodes properly. As for me it seems like a huge exponential increase which potentially could be hard to achieve in practice. Taking into account that max binary size is limited to 256MB and MaxParameters number limited to 50 the increase to max value of 15GB should be enough.
Collaborator
There was a problem hiding this comment.
You should store the large files on disk and then put the filename in LMDB. Otherwise your 256MB writes to the LMDB will block all other threads that want to make changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds support for passing typed parameters (boolean, integer, string, bytes) directly to Rholang terms via URI-based injection, eliminating manual hex encoding for binary data.
Production Changes
Protocol (
CasperMessage.proto)RholangValuemessage: union ofbool_value,int_value,string_value,bytes_valueDeployParametermessage: named parameter with typed valueDeployDataProtowithrepeated DeployParameter parameters = 13Scala Implementation
RholangValueData/DeployParameterData: Domain models with validationNormalizerEnv: Injects parameters asrho:deploy:param:<name>URIsTests
New Scala Tests
ParametrizedDeployDataSpec.scalaNormalizerEnvParametrizedSpec.scalaMultiParentCasperDeploySpec.scalaNew Python Integration Tests
test_deploy_binary_data_via_parametertest_deploy_encoded_binary_dataUsage
The usage of this new api is represented in
integration-tests/test/test_parametrized_deploydata.pyExpected stdout:
Breaking Changes
None. The
parametersfield is optional and defaults to empty.