# Where contracts fail, and runtimes/chains are needed

**URL:** <https://forum.polkadot.network/t/where-contracts-fail-and-runtimes-chains-are-needed/4464>\
**Category:** Ecosystem\
**Tags:** frame\
**Created:** [October 30, 2023, 11:35am UTC](https://forum.polkadot.network/t/where-contracts-fail-and-runtimes-chains-are-needed/4464 "2023-10-30T11:35:23Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![kianenigma](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/kianenigma/32/6153_2.png) [@kianenigma](https://forum.polkadot.network/u/kianenigma)\
**Post date:** [November 5, 2023, 12:09pm UTC](https://forum.polkadot.network/t/where-contracts-fail-and-runtimes-chains-are-needed/4464/6 "2023-11-05T12:09:41Z")

</div>

> [@d-moos](#):
>
> - offloading long-running tasks (off-chain worker)
> - changing underlying systems (e.g. the consensus protocol)
> - writing the runtime in another language that compiles to wasm (even though it is an exotic example I could see this being relevant for non-rust devs in the future)

Interesting ideas, thanks for sharing!

- indeed, although I would actually mention things like `on_idle` or [upcoming `#[pallet::task]`](https://github.com/paritytech/polkadot-sdk/pull/1343) as they are more specific to a chain. Offchain worker is somewhat of a poorly understood concept and [sometimes misleading](https://forum.polkadot.network/t/offchain-workers-design-assumptions-vulnerabilities/2548). But indeed it is also unique to a runtime.
- indeed, if you want to change anything in the system itself, you need a chain. Very similar to VPS vs dedicated hardware.
- I do think you can have any language to also transpile to Solidity or compile to EVM byte code, so I don’t find this one unique to runtimes/chains/FRAME.

---

_[View the full topic](https://forum.polkadot.network/t/where-contracts-fail-and-runtimes-chains-are-needed/4464)._
