Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Argument passing and returning values when invoking sandboxed funcs #189

Merged
merged 6 commits into from
Jun 19, 2018

Conversation

pepyakin
Copy link
Contributor

Also, sweep some todos, e.g don't panic when sandboxed module tries to import global variable or table.

/// 1 byte for encoding unit/value variant
/// 1 byte for encoding value type
/// 8 bytes for encoding the biggest value types: f64, i64.
pub const ENCODED_MAX_SIZE: usize = 10;
Copy link
Contributor Author

@pepyakin pepyakin May 30, 2018

Choose a reason for hiding this comment

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

I'm not entirely sure about this. On the one hand, this doesn't look too reliable. On the other hand, dynamic approach (i.e when runtime allocates memory for the return status and value, and returns it) seems more complex and less performant.

Copy link
Member

Choose a reason for hiding this comment

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

i128 is now the biggest (primitive) value type...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Clarified the comment, I hope it's better now!

@gavofyork
Copy link
Member

looks ok to me. some resolving to do.

@gavofyork gavofyork added A7-looksgoodcantmerge and removed A0-please_review Pull request needs code review. labels Jun 19, 2018
# Conflicts:
#	demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.compact.wasm
#	demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.wasm
#	polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm
#	polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm
#	substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.compact.wasm
#	substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.wasm
#	substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm
#	substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.wasm
@pepyakin pepyakin merged commit fea8f05 into master Jun 19, 2018
@pepyakin pepyakin deleted the ser-sweep-todos branch June 19, 2018 13:24
gavofyork added a commit that referenced this pull request Jun 21, 2018
* Merge remote-tracking branch 'origin/master' into gav-xts-dont-panic

* Update wasm.

* consensus, session and staking all panic-safe.

* Democracy doesn't panic in apply.

* Fix tests.

* Extra helper macro, council depanicked.

* Fix one test.

* Fix up all council tests. No panics!

* Council voting depanicked.

* Dispatch returns result.

* session & staking tests updated

* Fix democracy tests.

* Fix council tests.

* Fix up polkadot parachains in runtime

* Fix borked merge

* More Slicable support

Support general `Option` and array types.

* Basic storage types.

* Existential deposit for contract creation

* Basic implemnetation along with removals

* Fix tests.

* externalities builder fix.

* Tests.

* Fix up the runtime.

* Fix tests.

* Add generic `Address` type.

* Initial function integration of Address into Extrinsic.

* Fix build

* All tests compile.

* Fix (some) tests.

* Fix signing.

* Push error.

* transfer can accept Address

* Make Address generic over AccountIndex

* Fix test

* Make Council use Address for dispatch.

* Fix build

* Bend over backwards to support braindead derive.

* Repot some files.

* Fix tests.

* Fix grumbles

* Remove Default bound

* Fix build for new nightly.

* Make `apply_extrinsic` never panic, return useful Result.

* More merge hell

* Doesn't build, but might do soon

* Serde woes

* get substrate-runtime-staking compiling

* Polkadot builds again!

* Fix all build.

* Fix tests & binaries.

* Reserve some extra initial byte values of address for future format changes

* Make semantic of `ReservedBalance` clear.

* Fix panic handler.

* Integrate other balance transformations into the new model

Fix up staking tests.

* Fix runtime tests.

* Fix panic build.

* Tests for demonstrating interaction between balance types.

* Repot some runtime code

* Fix checkedblock in non-std builds

* Get rid of `DoLookup` phantom.

* Attempt to make transaction_pool work with lookups.

* Remove vscode settings

* New attempt at making transaction pool work.

* It builds again!

* --all builds

* Fix tests.

* New build.

* Test account nonce reset.

* polkadot transaction pool tests/framework.

* Initial draft (working).

* Address grumbles.

* Revert bad `map_or`

* Rebuild binaries, workaround.

* Avoid checking in vscode

* reconnecting, shared, slog

* CLI options for name and telemetry url

* ensure telemetry url imples enabled

* Avoid casting to usize early.

* Provide on-connect event for session message

* Better port

* heartbeat and some renaming

* transaction pool stuff

* minor renaming.

* report telemetry

* cleanups.

* Fix for previous cleanup

* dump genesis, dev mode, renaming

* Rework chain spec/config &c. to allow for genesis file loading.

* Avoid producing genesis storage when unneeded

* Allow reading JSON genesis state dumps

* tests work again

* better logging.

* Fix wasm build.

* Introduce PoC-1 spec

* Made block message compatible with poc-1

* Squashed changes for dumping genesis block.

* Binaries.

* Made block message compatible with poc-1

* Remove dead code.

* Fix bad merge.

* Argument passing and returning values when invoking sandboxed funcs (#189)

* Fixed block download sequence (#223)

* Trie-based execution proof (#177)

* TrieBasedBackend

* trie tests

* redunant return_value removed

* use Trie::get_with to record trie proofs

* Relaying tx/blocks by light clients (#190)

* do not import external transactions into light tx pool

* do not announce blocks on light clients

* blocks_are_not_announced_by_light_nodes
lamafab pushed a commit to lamafab/substrate that referenced this pull request Jun 16, 2020
Document Limiting Resources for Docker Containers
JoshOrndorff pushed a commit to moonbeam-foundation/substrate that referenced this pull request Apr 21, 2021
* rename CandidateState to Validator and redefine to match Exposure

* feat multiple nominations

* clean

* unit test multiple nominations

* add stakers as separate field to chainspec with fmt that matches stake genesis config

* verify nominations are returned when validator exits

* candidate bond more less

* nominator bond more less

* fmt

* switch nominatiion

* clean

* cannot switch to same nomination

* remove BlockNumber generic from ValidatorStatus

* more payout distribution unit tests

* fmt

* pay validators before nominators

* remove hidden default fee from genesis config and create no fee validator registration path

* bump impl version to 11

* fix genesis config

* improve test env naming and organization

* clean

* fix merge into master

* tests cover all decl error variants
liuchengxu pushed a commit to chainx-org/substrate that referenced this pull request Aug 23, 2021
liuchengxu pushed a commit to chainx-org/substrate that referenced this pull request Aug 23, 2021
* update runtime to rc5

* update rpc to rc5

* fix compile for node

* fix test errror
liuchengxu pushed a commit to autonomys/substrate that referenced this pull request Jun 3, 2022
Make `Solution` generic over public key
helin6 pushed a commit to boolnetwork/substrate that referenced this pull request Jul 25, 2023
Signed-off-by: Gregory Hill <gregorydhill@outlook.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants