yjh
b6a2948461
Remove wasmi backend from sc-executor ( #13800 )
...
* refactor: use builder api for all executors
* improve a lot
* remove unused args
* cleanup deps
* fix inconsistency about heap alloc
* add `heap_pages` back to try-runtime
* fix
* chore: reduce duplicated code for sc-service-test
* cleanup code
* fmt
* improve test executor
* improve
* use #[deprecated]
* set runtime_cache_size: 4
* wip
* fix and improve
* remove sc-executor-wasmi deps
* clean up bench and tests
* delete "client/executor/wasmi"
* cleanup
* refactor builder
* fix
* fix bench
* fix tests
* fix warnings
* fix warnings
* fix
* fix
* remove wasmi and fix tests
* unused imports
* improve by suggestions
* Update client/cli/src/arg_enums.rs
---------
Co-authored-by: Bastian Köcher <git@kchr.de >
Co-authored-by: parity-processbot <>
2023-05-23 17:31:45 +02:00
Marcin S
bfd43dbce5
WASM executor: add OutputExceedsBounds variant to Error ( #13841 )
...
* WASM executor: add `OutputExceedsBounds` variant to `Error`
Previously this was a `WasmError`, which is intended for runtime construction errors. However this
led to confusion as output-exceeds-bounds occurs due to execution of `validate_block`.
* Fix warning
2023-04-07 10:35:41 +00:00
Vivek Pandya
bc53b9a03a
Remove years from copyright notes. ( #13415 )
...
* Change copyright year to 2023 from 2022
* Fix incorrect update of copyright year
* Remove years from copy right header
* Fix remaining files
* Fix typo in a header and remove update-copyright.sh
2023-02-21 18:46:41 +00:00
Alexander Theißen
32578cb010
Remove sandboxing host function interface ( #12852 )
...
* Remove sandboxing interface
* Remove unused struct
2022-12-07 12:48:30 +00:00
yjh
9a7ff9a3a0
chore: improve runtime docs and remove unused error ( #12000 )
2022-08-11 11:59:38 +02:00
yjh
bf694d3c0e
remove unused error InvalidCode and improve docs ( #11383 )
2022-05-16 10:25:34 +02:00
Dmitry Kashitsyn
145abd7991
Separate wasmi and wasmer sandbox implementations into their own modules ( #10563 )
...
* Moves wasmi specific `ImportResolver` and `MemoryTransfer` impls to submodule
* Splits context store environmental, moves impl `Externals` to wasmi backend
* Adds wasmer sandbox backend stub module
* Move sandbox impl code to backend specific modules
* Moves wasmi stuff
* Fixes value conversion
* Makes it all compile
* Remove `with_context_store`
* Moves `WasmerBackend` to the impl
* Reformat the source
* Moves wasmer MemoryWrapper
* Reformats the source
* Fixes mutability
* Moves backend impls to a submodule
* Fix visibility
* Reformat the source
* Feature gate wasmer backend module
* Moves wasmi memory allocation to backend module
* Rename WasmerBackend to Backend
* Refactor dispatch result decoding, get rid of Wasmi types in common sandbox code
* Reformat the source
* Remove redundant prefixes in backend functions
* Remove wasmer-sandbox from default features
* Post-review changes
* Add conversion soundness proof
* Remove redundant prefix
* Removes now redundant clone_inner
* Add `Error::SandboxBackend`, refactor invoke result
* Fix comments
* Rename `Error::SandboxBackend` to `Sandbox`
* Simplifies logic in `wasmer_backend::invoke`
* Fixes memory management
2022-02-11 08:32:06 +00:00
Koute
9a31b2c341
Add a new host function for reporting fatal errors; make WASM backtraces readable when printing out errors ( #10741 )
...
* Add a new host function for reporting fatal errors
* Fix one of the wasmtime executor tests
* Have `#[runtime_interface(wasm_only)]` actually mean WASM-only, and not no_std-only
* Print out errors through `Display` instead of `Debug`
* Switch one more trait to require `Error` for its error instead of only `Debug`
* Align to review comments
2022-02-09 09:12:55 +00:00
Qinxuan Chen
e956c2e1c7
use thiserror instead of derive_more for error handling ( #10696 )
...
* use thiserror instead of derive_more for error handling
Signed-off-by: koushiro <koushiro.cqx@gmail.com >
* Update utils/prometheus/src/lib.rs
* Update utils/prometheus/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
2022-01-25 19:48:46 +00:00
Bastian Köcher
f3662b4bba
Happy new year 2022 ( #10573 )
2022-01-03 09:22:14 +01:00
Squirrel
d7804c0929
Move client only primitives to another dir ( #9220 )
...
* Move alloc primitive (not used in /pallets)
* Move to alternative location as not shared
* moved crates to different dir
* ren sp_chain_spec to sc_chain_spec_primatives
* merged sc-chain-spec and moved allocation up one.
* no no_std
* nudge
* Bump CI
2021-06-30 12:06:39 +02:00
Bastian Köcher
33f9becf41
Simplify runtime api error handling ( #8114 )
...
* Ahh
* Work work work
* Fix all the compilation errors
* Fix test
* More fixes...
2021-02-15 11:55:40 +00:00
Bastian Köcher
e3e651f72c
Happy new year ( #7814 )
...
* Happy new year
Updates the copyright years and fixes wrong license headers.
* Fix the template
* Split HEADER into HEADER-APACHE & HEADER-GPL
2021-01-04 09:03:13 +00:00
Bernhard Schuster
4ccf6672b1
resolve unresolved error nits of #7617 ( #7631 )
...
* handle executor should_panic test better
* Revert "reduce should panic, due to extended error messages"
This reverts commit c0805940184a62cd9302603ad911c3591e70a60c.
* remove excessive constraints
* remove duplicate documentation messages for error variants
* reduce T: constraints to the abs minimum
* whoops
* fewer bounds again
Co-authored-by: Bernhard Schuster <bernhard@parity.io >
2020-11-30 16:53:33 +01:00
Bernhard Schuster
8c7d217091
chore/error: remove from str conversion and add deprecation notificat… ( #7472 )
...
* chore/error: remove from str conversion and add deprecation notifications
* fixup changes
* fix test looking for gone ::Msg variant
* another test fix
* one is duplicate, the other is not, so duplicates reported are n-1
* darn spaces
Co-authored-by: Andronik Ordian <write@reusable.software >
* remove pointless doc comments of error variants without any value
* low hanging fruits (for a tall person)
* moar error type variants
* avoid the storage modules for now
They are in need of a refactor, and the pain is rather large
removing all String error and DefaultError occurences.
* chore remove pointless error generic
* fix test for mocks, add a bunch of non_exhaustive
* max line width
* test fixes due to error changes
* fin
* error outputs... again
* undo stderr adjustments
* Update client/consensus/slots/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* remove closure clutter
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* more error types
* introduce ApiError
* extract Mock error
* ApiError refactor
* even more error types
* the last for now
* chore unused deps
* another extraction
* reduce should panic, due to extended error messages
* error test happiness
* shift error lines by one
* doc tests
* white space
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Into -> From
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* remove pointless codec
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* avoid pointless self import
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
Co-authored-by: Bernhard Schuster <bernhard@parity.io >
Co-authored-by: Andronik Ordian <write@reusable.software >
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
2020-11-27 18:37:53 +00:00
Nikolay Volf
a062bc2f1d
Runtime worker threads ( #7089 )
...
* std variant
* principal work
* format and naming
* format and naming continued
* working nested fork
* add comment
* naming and tabs
* line width
* fix wording
* address review
* refactor dynamic dispatch
* update wasmtime
* some care
* move ext
* more refactor
* doc effort
* simplify
* doc effort
* tests and docs
* address review
* naming
* explain some args
* add example
* unwinding for native and tests
* rename stray
* fix refs
* fix tests
* fix warnings
* stray naming
* fixes and comments
* Update primitives/io/src/tasks.rs
Co-authored-by: cheme <emericchevalier.pro@gmail.com >
* make examples "compile"
* dyn_dispatch -> spawn_call
* fix impl
* address review
* Update primitives/io/src/lib.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Update primitives/io/src/tasks.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Update primitives/io/src/async_externalities.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Update primitives/io/src/tasks.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Update frame/example-parallel/src/lib.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* fix compilation
* Update client/executor/common/src/wasm_runtime.rs
Co-authored-by: Sergei Shulepov <sergei@parity.io >
* address review
* Update client/executor/wasmtime/src/instance_wrapper.rs
Co-authored-by: Sergei Shulepov <sergei@parity.io >
* Update client/executor/src/native_executor.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update primitives/io/src/tasks.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/executor/src/native_executor.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update primitives/io/src/tasks.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/executor/wasmtime/src/instance_wrapper.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* address some issues
* address more issues
* wasm_only interface
* define sp_tasks
* avoid anyhow
* fix example
Co-authored-by: cheme <emericchevalier.pro@gmail.com >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
Co-authored-by: Sergei Shulepov <sergei@parity.io >
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
2020-10-20 12:41:51 +00:00
Pierre Krieger
717fa95bc7
Restore the empty line after the license ( #6088 )
2020-05-20 13:08:27 +00:00
Nikolay Volf
d5411969ac
fix whitespace ( #6062 )
2020-05-18 13:51:28 +02:00
Benjamin Kampmann
be8c96adec
Relax substrate licensing scheme ( #5947 )
2020-05-15 13:21:56 +02:00
Shawn Tabrizi
c7a14db792
Fix various spelling errors ( #4940 )
...
* meaningfull -> meaningful
* initialise -> initialize
* tokans -> tokens
* incentivise -> incentivize
* lenght -> length
* incentivisation -> incentivization
* doesnt't -> doesn't
* overwriten -> overwritten
* lifecycle -> life cycle
* lifecycle -> life cycle
* usefull -> useful
* noone -> no one
* spaming -> spamming
* defered -> deferred
* hieght -> height
* sumation -> summation
* ingore -> ignore
* registed -> registered
* Auxialary -> Auxiliary
* loggin -> logging
* independance -> independence
* trailling -> trailing
* responsability -> responsibility
* trunkated -> truncated
* Weither -> Whether
* informations -> information
* Runtume -> Runtime
* choosen -> chosen
* delcataion -> declaration
* Unchekced -> Unchecked
* defintion -> definition
* scrach -> scratch
* imput -> input
* transfered -> transferred
* endownment -> endowment
* Determinator -> Determiner
* relevent -> relevant
* emited -> emitted
* acocunt -> account
* proprotional -> proportional
* instantiaion -> instantiation
* commited -> committed
* tombstonedead -> tombstone
* uwnrap -> unwrap
* acount -> account
* specialised -> specialized
* existant -> existent
* requried -> required
* Anull -> Annul
* AUTHORITES -> AUTHORITIES
* underyling -> underlying
* recognisable -> recognizable
* Capitalise -> Capitalize
* reportfor -> report for
* hearbeat -> heartbeat
* onlineness -> being online
* creater -> creator
* Bytearray -> Byte array
* Despoit -> Deposit
* substratced -> subtracted
* Curent -> Current
* imbalanes -> imbalances
* countfown -> countdown
* inexisting -> inexistent
* additionaly -> additionally
* substracted -> subtracted
* auxilary -> auxiliary
* parital -> partial
* in't -> isn't
* compatability -> compatibility
* infomation -> information
* etected -> detected
* extrinsiscs -> extrinsics
* reprensentation -> representation
* coonfiguration -> configuration
* primtives -> primitives
* miscelanious -> miscellaneous
* VERISON -> VERSION
* endcoded -> encoded
* Genrates -> Generates
* miliseconds -> milliseconds
* occured -> occurred
* trully -> truely
* truely -> truly
* conjuction -> conjunction
* encouters -> encounters
* customised -> customized
* deterministicly -> deterministically
* finalisation -> finalization
* pluggable -> plugable
* wakeup -> wake-up
* interemdiate -> intermediate
* intepreting -> interpreting
* finalzied -> finalized
* throgh -> through
* extinsic -> extrinsic
* convient -> convenient
* allocater -> allocator
* propagateable -> propagatable
* succesfuly -> successfully
* finalising -> finalizing
* publically -> publicly
* phrasee -> phrase
* substration -> substractions
* substractions -> subtractions
* neccessarily -> necessarily
* Inlucde -> Include
* unefficient -> inefficient
* thay -> they
* funtion -> function
* datastructures -> data structures
* infromation -> information
* propagatable -> propagable
* ecountered -> encountered
* recognise -> recognize
* intergration -> integration
* lastet -> latest
* datatypes -> data types
* datatype -> data type
* Strongarming -> Strong Arming
* avaible -> available
* Commiting -> Committing
* Retreiving -> Retrieving
* shoud -> should
* canonicaliziation -> canonicalization
* comitted -> committed
* clonable -> cloneable
* Uknown -> Unknown
* reponse -> response
* arbitary -> arbitrary
* Capapbilities -> Capabilities
* responsbile -> responsible
* initialisation -> initialization
* cames -> came
* intemediate -> intermediate
* reqeust -> request
* intance -> instance
* explcitly -> explicitly
* neighor -> neighbor
* reolving -> resolving
* untill -> until
* Validte -> Validate
* deserailize -> deserialize
* literaly -> literally
* preceeding -> preceding
* abpve -> above
* chcecked -> checked
* numbet -> number
* Unknow -> Unknown
* halfs -> halves
* gossup -> gossip
* givent -> given
* immediatelly -> immediately
* slicable -> sliceable
* conensus -> consensus
* Mimicks -> Mimics
* acccept -> accept
* serialise -> serialize
* exstrinsics -> extrinsics
* panicks -> panics
* maintaince -> maintenance
* repeatidely -> repeatedly
* anecstor -> ancestor
* becasue -> because
* processer -> processor
* Prunning -> Pruning
* insterested -> interested
* unuseful -> not useful
* yeided -> yielded
* descendfing -> descending
* corresponts -> corresponds
* survivew -> survive
* keps -> keeps
* ligh -> light
* prerequisities -> prerequisites
* positiion -> position
* depedency -> dependency
* extrinisic -> extrinsic
* atomicaly -> atomically
* staticly -> statically
* resul -> result
* timestamb -> timestamp
* Utilites -> Utilities
* ammount -> amount
* pocess -> process
* exteral -> external
* Update client/finality-grandpa/src/tests.rs
* Update primitives/io/src/lib.rs
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update primitives/blockchain/src/lib.rs
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update frame/support/src/weights.rs
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update bin/node/cli/tests/common.rs
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update client/api/src/execution_extensions.rs
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update client/cli/src/params.rs
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update client/executor/common/src/sandbox.rs
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update client/api/src/execution_extensions.rs
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update client/finality-grandpa/src/communication/mod.rs
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update client/state-db/src/pruning.rs
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update frame/contracts/src/tests.rs
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update client/api/src/execution_extensions.rs
* bump impl
* timestamb -> timestamp
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
2020-02-17 15:07:24 +01:00
Bastian Köcher
5bd6e94e64
Move "wasm" allocator into its own crate ( #4716 )
...
This moves the wasm-allocator (`FreeingBumpHeapAllocator`) into its own
crate `sp-allocator`. This new crate can theoretically provide multiple
different allocators. Besides moving the allocator, this pr also makes
`FreeingBumpHeapAllocator` compile on `no_std`.
2020-01-22 18:13:17 +01:00
Bastian Köcher
afc3318f21
Implement runtime version checks in set_code ( #4548 )
...
* Implement runtime version checks in `set_code`
Check that the new runtime code given to `set_code` fullfills some
requirements:
- `spec_name` matches
- `spec_version` does not decreases
- `impl_version` does not decreases
- Either `spec_version` and `impl_version` increase
* Make tests almost work
* Some fixes after master merge
* Fix tests
* Add missed file
* Make depedency check happy?
* Remove leftover `sc-executor`
* AHHHHH
* Reset debug stuff
* Remove some 'static
* More 'static
* Some docs
* Update `Cargo.lock`
2020-01-16 13:58:37 +01:00
Shawn Tabrizi
7efa62725e
Update copyright year ( #4532 )
2020-01-05 14:05:44 +01:00
Sergei Pepyakin
1782fbbbba
Extract execution engines definitions into their own crates ( #4489 )
...
* Clean imports in wasmi_execution
* Replace `interpret_runtime_api_result` with `pointer_and_len_from_u64`.
* Extract sc-executor-common crate
* Extract `sc-executor-wasmi` into its own crate
* Extract `sc-executor-wasmtime` into its own crate.
* Add missing headers.
* Clean and docs
* Docs for sc-executor-wasmi
* Expand a comment about sandboxing
* Fix assert_matches
* Rename (un)pack_ptr_and_len and move them into util module
* Remove wasmtime errors in sc-executor-common
2019-12-24 13:17:41 +01:00