Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: resolved-github-issues #1856

Merged
merged 4 commits into from
Nov 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions arbitrum-docs/launch-orbit-chain/how-tos/fast-withdrawals.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -194,3 +194,9 @@ The following parameters need to be configured in those nodes.
| ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--node.staker.enable-fast-confirmation=true` | Enables fast withdrawals in the validator node |
| `--node.staker.make-assertion-interval=0h15m0s` | Since assertions need to be created for them to be confirmed, the minimum interval to create these assertions should be set to an amount close to the `minimumAssertionPeriod` defined in the Rollup contract. Modify `0h15m0s` to the configured value. |

:::note

Immediately after configuring fast withdrawals, your chain may not operate at full speed yet. This ramp-up is because the validators must work through the backlog of assertions that have yet to be confirmed. You will see a series of 'NodeCreated' and 'NodeConfirmed' events. Once the backlog is processed, your chain should operate fully at speed.

:::
12 changes: 10 additions & 2 deletions arbitrum-docs/partials/_troubleshooting-orbit-partial.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,19 @@ Check our <a href="https://docs.arbitrum.io/launch-orbit-chain/orbit-quickstart"

### Do I need permission/license to launch an Orbit chain?
<p>
You can permissionlessly launch an L3 Orbit chain that settles to one of Arbitrum's Layer 2 (L2) chains. There is an emerging licensing structure will soon make it possible to permissionlessly launch an L2 Orbit chain that settles directly to Ethereum. Please get in touch with the Arbitrum Foundation or Offchain Labs for more information.
You can launch any Orbit chain permissionlessly.
</p>

<p>
Note that launching a testnet doesn't require any license.
Nitro is licensed under a <a href="https://github.com/OffchainLabs/nitro?tab=License-1-ov-file">Business Source license</a>, similar to DeFi protocols like Uniswap and Aave, among others. This license contains an Additional Use Grant that permits the permissionless deployment of Nitro software on blockchains that settle to Arbitrum One or Nova.
</p>

<p>
However, Orbit chains that settle to a parent chain other than Arbitrum One or Nova are subject to additional licensing guidelines under the <a href="https://docs.arbitrum.foundation/aep/ArbitrumExpansionProgramTerms.pdf">AEP</a>.
</p>

<p>

</p>

<p>
Expand Down
2 changes: 1 addition & 1 deletion arbitrum-docs/partials/_troubleshooting-stylus-partial.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ No. Stylus contracts are compiled down to WASM. The user writes a program in Rus

### How is a Stylus contract deployed?
<p>
Stylus contracts are deployed on chain as a blob of bytes, just like EVM ones. The only difference is that when the contract is executed, instead of invoking the EVM, we invoke a separate WASM runtime. Note that a special EOF-inspired prefix distinguishes Stylus contracts from traditional EVM contracts: when a contract's bytecode starts with the magic <code>0xEF000000</code> prefix, it's a Stylus WASM contract.
Stylus contracts are deployed on chain as a blob of bytes, just like EVM ones. The only difference is that when the contract is executed, instead of invoking the EVM, we invoke a separate WASM runtime. Note that a special EOF-inspired prefix distinguishes Stylus contracts from traditional EVM contracts: when a contract's bytecode starts with the magic <code>0xEFF00000</code> prefix, it's a Stylus WASM contract.
</p>

<p>
Expand Down
2 changes: 1 addition & 1 deletion website/static/building-orbit-faqs.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[
{"question": "Can I use Orbit to deploy a mainnet chain?","answer": "<p>\nYes! Arbitrum Orbit's core technology has undergone a comprehensive audit and is now able to support deployments to mainnet. You can read more about it <a href=\"https://docs.arbitrum.io/launch-orbit-chain/concepts/public-preview-expectations#arbitrum-orbit-is-mainnet-ready-but-deploy-to-testnet-first\">here</a>.\n</p>\n\n<p>\n\n</p>\n\n","key": "can-i-use-orbit-to-deploy-a-mainnet-chain"},
{"question": "How can I deploy an Orbit-based Layer 3 (L3) chain?","answer": "<p>\nCheck our <a href=\"https://docs.arbitrum.io/launch-orbit-chain/orbit-quickstart\">Quickstart</a> to learn how to launch your own Orbit chain today.\n</p>\n\n<p>\n\n</p>\n\n","key": "how-can-i-deploy-an-orbitbased-layer-3-l3-chain"},
{"question": "Do I need permission/license to launch an Orbit chain?","answer": "<p>\nYou can permissionlessly launch an L3 Orbit chain that settles to one of Arbitrum's Layer 2 (L2) chains. There is an emerging licensing structure will soon make it possible to permissionlessly launch an L2 Orbit chain that settles directly to Ethereum. Please get in touch with the Arbitrum Foundation or Offchain Labs for more information.\n</p>\n\n<p>\nNote that launching a testnet doesn't require any license.\n</p>\n\n<p>\n\n</p>\n\n","key": "do-i-need-permissionlicense-to-launch-an-orbit-chain"},
{"question": "Do I need permission/license to launch an Orbit chain?","answer": "<p>\nYou can launch any Orbit chain permissionlessly. \n</p>\n\n<p>\nNitro is licensed under a <a href=\"https://github.com/OffchainLabs/nitro?tab=License-1-ov-file\">Business Source license</a>, similar to DeFi protocols like Uniswap and Aave, among others. This license contains an Additional Use Grant that permits the permissionless deployment of Nitro software on blockchains that settle to Arbitrum One or Nova. \n</p>\n\n<p>\nHowever, Orbit chains that settle to a parent chain other than Arbitrum One or Nova are subject to additional licensing guidelines under the <a href=\"https://docs.arbitrum.foundation/aep/ArbitrumExpansionProgramTerms.pdf\">AEP</a>.\n</p>\n\n<p>\n\n</p>\n\n<p>\n\n</p>\n\n","key": "do-i-need-permissionlicense-to-launch-an-orbit-chain"},
{"question": "Does Arbitrum officially deploy and/or maintain L3s for external teams?","answer": "<p>\nNo. Teams are required to deploy and maintain their Orbit chains. There are, however, several RaaS (Rollup as a Service) providers that can deploy and maintain the Orbit chain for you.\n</p>\n\n<p>\n\n</p>\n\n","key": "does-arbitrum-officially-deploy-andor-maintain-l3s-for-external-teams"},
{"question": "Can I modify Orbit's underlying technology to customize my chain?","answer": "<p>\nYes, you can make any changes you require to the underlying Nitro code base.\n</p>\n\n<p>\n\n</p>\n\n","key": "can-i-modify-orbits-underlying-technology-to-customize-my-chain"},
{"question": "What Data Availability (DA) solutions are currently available for Orbit chains?","answer": "<p>\nArbitrum Orbit currently supports 3 different DA solutions:\n</p>\n\n<ul>\n<li>Rollup, posting data to the parent chain which ultimately posts the data to Ethereum.</li>\n<li>AnyTrust, posting data to a Data Availability Committee, selected by the chain owner.</li>\n<li>Celestia, posting data to <a href=\"https://blog.celestia.org/celestia-is-first-modular-data-availability-network-to-integrate-with-arbitrum-orbit/\">Celestia network</a>.</li>\n</ul>\n<p>\nNote that using AnyTrust gives the chain owner the most flexibility and cheapest fees.\n</p>\n\n<p>\n\n</p>\n\n","key": "what-data-availability-da-solutions-are-currently-available-for-orbit-chains"},
Expand Down
2 changes: 1 addition & 1 deletion website/static/building-stylus-faqs.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
{"question": "Why are constructors not yet supported for Stylus contracts?","answer": "<p>\nConstructors use EVM bytecode to initialize state. While one could add EVM bytecode manually to their Stylus deployment, we don't allow WASM execution in the constructor so there's no way to express this in the SDK.\n</p>\n\n<p>\nWe're working on models that will make init easier, so there might be better solutions available in the future. For now, we suggest calling an init method after deploying.\n</p>\n\n<p>\n\n</p>\n\n","key": "why-are-constructors-not-yet-supported-for-stylus-contracts"},
{"question": "Is it possible to verify Stylus contracts on the block explorer?","answer": "<p>\nCurrently it is not possible to verify contracts compiled to WASM on the block explorer, but we are actively working with providers to have the verification process ready for when Stylus reaches mainnet-ready status.\n</p>\n\n<p>\n\n</p>\n\n","key": "is-it-possible-to-verify-stylus-contracts-on-the-block-explorer"},
{"question": "Do Stylus contracts compile down to EVM bytecode like prior other attempts?","answer": "<p>\nNo. Stylus contracts are compiled down to WASM. The user writes a program in Rust / C / C++ which is then compiled down to WebAssembly.\n</p>\n\n<p>\n\n</p>\n\n","key": "do-stylus-contracts-compile-down-to-evm-bytecode-like-prior-other-attempts"},
{"question": "How is a Stylus contract deployed?","answer": "<p>\nStylus contracts are deployed on chain as a blob of bytes, just like EVM ones. The only difference is that when the contract is executed, instead of invoking the EVM, we invoke a separate WASM runtime. Note that a special EOF-inspired prefix distinguishes Stylus contracts from traditional EVM contracts: when a contract's bytecode starts with the magic <code>0xEF000000</code> prefix, it's a Stylus WASM contract.\n</p>\n\n<p>\n\n</p>\n\n","key": "how-is-a-stylus-contract-deployed"},
{"question": "How is a Stylus contract deployed?","answer": "<p>\nStylus contracts are deployed on chain as a blob of bytes, just like EVM ones. The only difference is that when the contract is executed, instead of invoking the EVM, we invoke a separate WASM runtime. Note that a special EOF-inspired prefix distinguishes Stylus contracts from traditional EVM contracts: when a contract's bytecode starts with the magic <code>0xEFF00000</code> prefix, it's a Stylus WASM contract.\n</p>\n\n<p>\n\n</p>\n\n","key": "how-is-a-stylus-contract-deployed"},
{"question": "Is there a new transaction type to deploy Stylus contracts?","answer": "<p>\nYou deploy a Stylus contract the same way that Solidity contracts are deployed. There are no special transaction types. As a UX note: a WASM will revert until a special instrumentation operation is performed by a call to the new  <code>ArbWasm</code> precompile, which readies the program for calls on-chain.\n</p>\n\n<p>\nYou can find instructions for deploying a Stylus contract in our <a href=\"https://docs.arbitrum.io/stylus/stylus-quickstart#checking-your-stylus-project-is-valid\">Quickstart</a>.\n</p>\n\n","key": "is-there-a-new-transaction-type-to-deploy-stylus-contracts"},
{"question": "Do Stylus contracts use a different type of ABI?","answer": "<p>\nStylus contracts use solidity ABIs. Methods, signatures, logs, calls, etc. work exactly as in the EVM. From a user's / explorer's perspective, it all just looks and behaves like solidity.\n</p>\n\n<p>\n\n</p>\n\n","key": "do-stylus-contracts-use-a-different-type-of-abi"},
{"question": "Does the Stylus SDK for Rust support custom data structures?","answer": "<p>\nFor in-memory usage, you should be able to use any implementation of custom data structures without problems.\n</p>\n\n<p>\nFor storage usage, it might be a bit more complicated. Stylus uses the EVM storage system, so you'll need to define the data structure on top of it. However, in the SDK there's a storage trait that custom types can implement to back their collections with the EVM state trie. The SDK macros are compatible with them too, although fundamentally it's still a global key-value system.\n</p>\n\n<p>\nYou can read more about it in the <a href=\"https://docs.arbitrum.io/stylus/reference/rust-sdk-guide#storage\">Stylus Rust SDK page</a>.\n</p>\n\n<p>\nAs an alternative solution, you can use <a href=\"https://docs.arbitrum.io/stylus/reference/rust-sdk-guide#bytes-in-bytes-out-programming\">entrypoint-style contracts</a> for your custom data structures.\n</p>\n\n<p>\n\n</p>\n\n<p>\n\n</p>\n\n","key": "does-the-stylus-sdk-for-rust-support-custom-data-structures"},
Expand Down
Loading