# Help us test ic-gateway, the core of the upcoming HTTP gateways

**URL:** <https://forum.dfinity.org/t/help-us-test-ic-gateway-the-core-of-the-upcoming-http-gateways/33775>\
**Category:** Developers\
**Tags:** Boundary-nodes\
**Created:** [July 31, 2024, 8:25pm UTC](https://forum.dfinity.org/t/help-us-test-ic-gateway-the-core-of-the-upcoming-http-gateways/33775 "2024-07-31T20:25:13Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![rbirkner](https://avatars.discourse-cdn.com/v4/letter/r/838e76/32.png) [@rbirkner](https://forum.dfinity.org/u/rbirkner)\
**Post date:** [July 31, 2024, 8:25pm UTC](https://forum.dfinity.org/t/help-us-test-ic-gateway-the-core-of-the-upcoming-http-gateways/33775/1 "2024-07-31T20:25:13Z")

</div>

Hello everyone,

I am happy to share that we took another big step towards the new boundary node architecture: the completion of internal testing for ic-gateway, the core service of the upcoming HTTP gateways. For more details on the new architecture and the HTTP gateway’s role, please refer to the [boundary node roadmap](https://forum.dfinity.org/t/boundary-node-roadmap/15562).

Before we roll out the HTTP gateways, we need to test ic-gateway in the existing boundary nodes. To this end, we rebuilt the boundary nodes to solely rely on ic-gateway and ic-boundary (the core service of the API boundary nodes). Essentially, ic-gateway replaces nginx and icx-proxy: at a high-level, this means, it terminates TLS, caches static HTTP assets, implements [the HTTP gateway protocol](https://internetcomputer.org/docs/current/references/http-gateway-protocol-spec), and proxies the traffic to ic-boundary.

Now, we need your help: before adding these modified boundary nodes to the production load balancer, we want to test them on their own. To this end, we have setup a simple proxy configuration that routes all IC traffic to that modified boundary node. Setting up the proxy is straightforward, and instructions for Windows, Mac, and Linux are provided below.

Please give it a try and report any issues in this thread. Don’t forget to undo the changes after you’re done testing.

Thanks a lot for your help!

* * *

**Mac OS X**

- Open your system settings and go to “Network” → “Wi-Fi”.
- Select your currently active Wi-Fi connection and click on “Details”.
- Under “Proxies” enable “Automatic proxy configuration” and provide the following URL for the proxy file:

```auto
https://gist.githubusercontent.com/r-birkner/2baaf38ca9ce5d1135bf90ad9579c2b5/raw/6dd4288321733632376854b71089bcc20847fbec/canary-fallback.pac

```

- Click on “OK” to confirm the changes.
- Now, you are all set! From now on, all your IC traffic is proxied through the canary boundary node.

**Windows**

- Open the Settings app and go to “Network & Internet” → “Proxy”.
- Enable “Automatically detect settings”.
- Enable “Use setup script”.
- Set the following as “Script address”.

```auto
https://gist.githubusercontent.com/r-birkner/2baaf38ca9ce5d1135bf90ad9579c2b5/raw/6dd4288321733632376854b71089bcc20847fbec/canary-fallback.pac

```

- Click on “Save” to confirm the changes.
- Now, you are all set! From now on, all your IC traffic is proxied through the canary boundary node.

**Linux**

- Open your system settings and go to “Network” → “Network Proxy”.
- Select “Automatic” and provide the following URL for the proxy file:

```auto
https://gist.githubusercontent.com/r-birkner/2baaf38ca9ce5d1135bf90ad9579c2b5/raw/6dd4288321733632376854b71089bcc20847fbec/canary-fallback.pac

```

- Close the settings windows.
- Now, you are all set! From now on, all your IC traffic is proxied through the canary boundary node.

---

<div class="post-metadata">

**Author:** ![Sormarler](https://avatars.discourse-cdn.com/v4/letter/s/c57346/32.png) [@Sormarler](https://forum.dfinity.org/u/Sormarler)\
**Post date:** [August 2, 2024, 7:18am UTC](https://forum.dfinity.org/t/help-us-test-ic-gateway-the-core-of-the-upcoming-http-gateways/33775/2 "2024-08-02T07:18:53Z")

</div>

I will give this a try tomorrow.

---

<div class="post-metadata">

**Author:** ![Forreal](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/forreal/32/25191_2.png) [@Forreal](https://forum.dfinity.org/u/Forreal)\
**Post date:** [August 3, 2024, 2:42am UTC](https://forum.dfinity.org/t/help-us-test-ic-gateway-the-core-of-the-upcoming-http-gateways/33775/3 "2024-08-03T02:42:28Z")

</div>

I have set it up. Should I notice a difference?

---

<div class="post-metadata">

**Author:** ![rbirkner](https://avatars.discourse-cdn.com/v4/letter/r/838e76/32.png) [@rbirkner](https://forum.dfinity.org/u/rbirkner)\
**Post date:** [August 3, 2024, 3:58pm UTC](https://forum.dfinity.org/t/help-us-test-ic-gateway-the-core-of-the-upcoming-http-gateways/33775/4 "2024-08-03T15:58:25Z")

</div>

Hey @Forreal

Ideally, you shouldn’t note any difference. To make sure that you are really using the canary boundary node, you can open a site hosted on the IC (e.g., [internetcomputer.org](http://internetcomputer.org)) and then check in the network pane of the developer tools what the “remote address” of the request is. It should be `193.118.63.171:8888`.

Thanks a lot for giving it a try!

---

<div class="post-metadata">

**Author:** ![tiago89](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/tiago89/32/22332_2.png) [@tiago89](https://forum.dfinity.org/u/tiago89)\
**Post date:** [August 16, 2024, 8:04am UTC](https://forum.dfinity.org/t/help-us-test-ic-gateway-the-core-of-the-upcoming-http-gateways/33775/6 "2024-08-16T08:04:07Z")

</div>

Hi Rüdiger,

Have enabled the Proxy as you mentioned and opened several IC websites and raw addresses.

All worked well and no significant difference was detected, initially I thought it was faster, but when I timed it and compared on Network Tab, wasn’t able to “prove” my wishful feeling 😅

I recorded 2 sessions, one before and another after the proxy being enabled.

Before proxy: [BN Testing - without Proxy | Loom](https://www.loom.com/share/eb621e1744e6413ba656f4e786e68633)  
After proxy: [BN Testing - with Proxy | Loom](https://www.loom.com/share/52a080cf92fe4ba5b02bf3dfd5dbf367)

Hope this is somewhat helpful 🙏

Regards,  
Tiago

PS.: Kudos for the PT ICP HUB for having [reached out](https://x.com/icphub_pt/status/1823721247102173559?s=46&t=0w6gu9iwmqy67CAVWHX6Qw) (I confess I had seen this forum post and then forgotten 😅 )

---

<div class="post-metadata">

**Author:** ![rbirkner](https://avatars.discourse-cdn.com/v4/letter/r/838e76/32.png) [@rbirkner](https://forum.dfinity.org/u/rbirkner)\
**Post date:** [August 16, 2024, 11:48am UTC](https://forum.dfinity.org/t/help-us-test-ic-gateway-the-core-of-the-upcoming-http-gateways/33775/7 "2024-08-16T11:48:35Z")

</div>

Thanks a lot @tiago89

The latency shouldn’t differ much as everything is dominated by the network latency between the boundary node and the replica. Since the boundary nodes randomly choose the replica, the latency can vary form few tens of ms to hundreds of ms.

The reason why we switched to the new gateway is mostly convenience and maintainability. Until now, we have been using nginx with custom modules. These custom modules have been necessary as nginx doesn’t support certain IC/web3 features out of the box. The custom modules were cumbersome to maintain and inefficient.
