<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Running a builder on Signet</title><link>https://test.signet.sh/docs/block-builders/run-a-builder/</link><description>Recent content in Running a builder on Signet</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://test.signet.sh/docs/block-builders/run-a-builder/index.xml" rel="self" type="application/rss+xml"/><item><title>Authentication</title><link>https://test.signet.sh/docs/block-builders/run-a-builder/authentication/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://test.signet.sh/docs/block-builders/run-a-builder/authentication/</guid><description>&lt;h1 id="authentication"&gt;Authentication&lt;/h1&gt;&lt;h2 id="overview"&gt;Overview&lt;a href="#overview" class="heading-anchor" data-heading-anchor aria-label="Link to Overview"&gt;
 &lt;svg class="heading-anchor-icon" data-icon width="12" height="12" aria-hidden="true"&gt;
 &lt;use xlink:href="#icon-link"&gt;&lt;/use&gt;
 &lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Authentication will be required for the following behaviors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Getting a sequencer co-signature on a built block.&lt;/li&gt;
&lt;li&gt;Retrieving bundles from the bundle relay.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Authentication will be performed using a standard OAuth2 client credential grant and then the access token you receive can be used to authorize all requests to the sequencer and bundle relay.&lt;/p&gt;
&lt;h2 id="oauth-identity-provider-reference"&gt;OAuth Identity Provider Reference&lt;a href="#oauth-identity-provider-reference" class="heading-anchor" data-heading-anchor aria-label="Link to OAuth Identity Provider Reference"&gt;
 &lt;svg class="heading-anchor-icon" data-icon width="12" height="12" aria-hidden="true"&gt;
 &lt;use xlink:href="#icon-link"&gt;&lt;/use&gt;
 &lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;h3 id="havarti"&gt;Havarti&lt;a href="#havarti" class="heading-anchor" data-heading-anchor aria-label="Link to Havarti"&gt;
 &lt;svg class="heading-anchor-icon" data-icon width="12" height="12" aria-hidden="true"&gt;
 &lt;use xlink:href="#icon-link"&gt;&lt;/use&gt;
 &lt;/svg&gt;
 &lt;/a&gt;
&lt;/h3&gt;&lt;div style="--col-1: 30%; --col-2: 70%;"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Issuer&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://auth.havarti.signet.sh/realms/master" rel="noopener noreferrer" target="_blank"&gt;&lt;code&gt;https://auth.havarti.signet.sh/realms/master&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OAuth &lt;code&gt;.well-known&lt;/code&gt; URL&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://auth.havarti.signet.sh/realms/master/.well-known/openid-configuration" rel="noopener noreferrer" target="_blank"&gt;&lt;code&gt;https://auth.havarti.signet.sh/realms/master/.well-known/openid-configuration&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Authorize Endpoint&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://auth.havarti.signet.sh/realms/master/protocol/openid-connect/auth" rel="noopener noreferrer" target="_blank"&gt;&lt;code&gt;https://auth.havarti.signet.sh/realms/master/protocol/openid-connect/auth&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Token Endpoint&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://auth.havarti.signet.sh/realms/master/protocol/openid-connect/token" rel="noopener noreferrer" target="_blank"&gt;&lt;code&gt;https://auth.havarti.signet.sh/realms/master/protocol/openid-connect/token&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h2 id="authenticating-using-curl"&gt;Authenticating Using &lt;code&gt;curl&lt;/code&gt;&lt;a href="#authenticating-using-curl" class="heading-anchor" data-heading-anchor aria-label="Link to Authenticating Using curl"&gt;
 &lt;svg class="heading-anchor-icon" data-icon width="12" height="12" aria-hidden="true"&gt;
 &lt;use xlink:href="#icon-link"&gt;&lt;/use&gt;
 &lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;First off a basic example of getting an OAuth2 access token and using it to authenticate any of our secured API&amp;rsquo;s&lt;/p&gt;</description></item><item><title>Environment variables</title><link>https://test.signet.sh/docs/block-builders/run-a-builder/environment-variables/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://test.signet.sh/docs/block-builders/run-a-builder/environment-variables/</guid><description>&lt;h1 id="environment-variables"&gt;Environment Variables&lt;/h1&gt;&lt;p&gt;The Builder is configured via environment variables. The following values are supported for configuration.&lt;/p&gt;
&lt;div style="--col-1: 40%; --col-2: 15%; --col-3: 45%;"&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Required&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;HOST_CHAIN_ID&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Host-chain ID (e.g. 3151908)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;RU_CHAIN_ID&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Rollup-chain ID (e.g. 88888)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;HOST_RPC_URL&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;RPC endpoint for the host chain&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ROLLUP_RPC_URL&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;RPC endpoint for the rollup chain&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;TX_POOL_URL&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Transaction pool URL (must end with /)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;FLASHBOTS_ENDPOINT&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-success"&gt;Optional&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;When configured, the Builder will send Signet blocks to this URL as transaction bundles&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;TX_BROADCAST_URLS&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-success"&gt;Optional&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Additional endpoints for blob txs (comma-separated, slash required)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ZENITH_ADDRESS&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Zenith contract address&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;BUILDER_HELPER_ADDRESS&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Builder helper contract address&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;QUINCEY_URL&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Remote sequencer signing endpoint&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;BUILDER_PORT&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;HTTP port for the Builder (default: 8080)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;SEQUENCER_KEY&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;AWS KMS key ID &lt;em&gt;or&lt;/em&gt; local private key for sequencer signing&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;BUILDER_KEY&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;AWS KMS key ID &lt;em&gt;or&lt;/em&gt; local private key for builder signing&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;BUILDER_REWARDS_ADDRESS&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Address receiving builder rewards&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ROLLUP_BLOCK_GAS_LIMIT&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-success"&gt;Optional&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Override for block gas limit&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;CONCURRENCY_LIMIT&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-success"&gt;Optional&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Max concurrent tasks the simulator uses&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;OAUTH_CLIENT_ID&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Oauth client ID for the builder&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;OAUTH_CLIENT_SECRET&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Oauth client secret for the builder&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;OAUTH_AUTHENTICATE_URL&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Oauth authenticate URL for the builder for performing OAuth logins&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;OAUTH_TOKEN_URL&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;Oauth token URL for the builder to get an Oauth2 access token&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;AUTH_TOKEN_REFRESH_INTERVAL&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;The OAuth token refresh interval in seconds.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;CHAIN_NAME&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;span class="badge badge-danger"&gt;Required&lt;/span&gt;
&lt;/td&gt;
 &lt;td&gt;The name of the chain (e.g. &lt;code&gt;parmigiana&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description></item><item><title>Clone and build</title><link>https://test.signet.sh/docs/block-builders/run-a-builder/clone-and-build/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://test.signet.sh/docs/block-builders/run-a-builder/clone-and-build/</guid><description>&lt;h1 id="clone-and-build-the-signet-builder"&gt;Clone and Build the Signet Builder&lt;/h1&gt;&lt;p&gt;The Builder simulates bundles and transactions to create valid rollup blocks and submits them to Ethereum.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a href="#prerequisites" class="heading-anchor" data-heading-anchor aria-label="Link to Prerequisites"&gt;
 &lt;svg class="heading-anchor-icon" data-icon width="12" height="12" aria-hidden="true"&gt;
 &lt;use xlink:href="#icon-link"&gt;&lt;/use&gt;
 &lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rust&lt;/strong&gt; ≥ 1.85&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AWS CLI&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recommended-system-specs"&gt;Recommended System Specs&lt;a href="#recommended-system-specs" class="heading-anchor" data-heading-anchor aria-label="Link to Recommended System Specs"&gt;
 &lt;svg class="heading-anchor-icon" data-icon width="12" height="12" aria-hidden="true"&gt;
 &lt;use xlink:href="#icon-link"&gt;&lt;/use&gt;
 &lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;CPU: 0.5 vCPU (minimum 0.1 vCPU)&lt;/li&gt;
&lt;li&gt;Memory: 512MB (minimum 256MB)&lt;/li&gt;
&lt;li&gt;Clock speed: 2.8GHz+ (builder prefers clock speed over core count)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="clone-the-repository"&gt;Clone the Repository&lt;a href="#clone-the-repository" class="heading-anchor" data-heading-anchor aria-label="Link to Clone the Repository"&gt;
 &lt;svg class="heading-anchor-icon" data-icon width="12" height="12" aria-hidden="true"&gt;
 &lt;use xlink:href="#icon-link"&gt;&lt;/use&gt;
 &lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;div class="code-block" data-code-block&gt;
 &lt;div class="code-header"&gt;
 &lt;span class="code-lang"&gt;bash&lt;/span&gt;
 &lt;button class="code-copy" data-copy-button aria-label="Copy code" type="button"&gt;Copy&lt;/button&gt;
 &lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/init4tech/builder
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; builder&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id="build-options"&gt;Build Options&lt;a href="#build-options" class="heading-anchor" data-heading-anchor aria-label="Link to Build Options"&gt;
 &lt;svg class="heading-anchor-icon" data-icon width="12" height="12" aria-hidden="true"&gt;
 &lt;use xlink:href="#icon-link"&gt;&lt;/use&gt;
 &lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;h3 id="local-build"&gt;Local Build&lt;a href="#local-build" class="heading-anchor" data-heading-anchor aria-label="Link to Local Build"&gt;
 &lt;svg class="heading-anchor-icon" data-icon width="12" height="12" aria-hidden="true"&gt;
 &lt;use xlink:href="#icon-link"&gt;&lt;/use&gt;
 &lt;/svg&gt;
 &lt;/a&gt;
&lt;/h3&gt;&lt;div class="code-block" data-code-block&gt;
 &lt;div class="code-header"&gt;
 &lt;span class="code-lang"&gt;bash&lt;/span&gt;
 &lt;button class="code-copy" data-copy-button aria-label="Copy code" type="button"&gt;Copy&lt;/button&gt;
 &lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cargo build --release&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The compiled binary will be available at &lt;code&gt;target/release/builder&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>