AntTP - Serving Autonomi data over HTTP

New AntTP v0.18.1 released with some nice new features.

Here is the change log:

  • Adds access list support to configure allow/deny lists. An address (immutable or pointer/register to immutable) can be provided via the CLI, which is then retrieved from the network. See access_list.json for an example. When a denied bookmark/mutable/immutable is requested, a 403 FORBIDDEN response is returned.
  • Access list support has been added to addresses provided via URLs (REST API does not yet block though).
  • Adds resolving a directory address to index.html if it is present. This is the same behaviour as setting an app-conf route from “” to index.html, but requires no configuration.
  • Adds support for wildcard domains with address prefixes, so http://.somedomain.com/filename.jpg will resolve the address in the same way as http://somedomain.com//filename.jpg. This allows standardisation of URL formats using gateways or proxies, opening the way to easy linking of apps/pages.
  • Adds HTTPS support with a self-signed, wildcard, certificate.
  • Adds HTTPS proxy support, allowing any HTTPS URL on the WWW to be parsed and served with the local instance. This is implemented by handling CONNECT requests over HTTP, then routing them via a TCP connection to the HTTPS port.

The new allow/deny lists allow an address of an access list JSON file to be specified. I’ll update the README.md soon, but here is an example ( or “all” are valid): AntTP/access_list.json at master · traktion/AntTP · GitHub

For the auto index.html loading, this is something I thought could just be in the app-conf.json file, but the convention just makes life easier. Ofc, if the index.html exists, you won’t see a directory listing (for the associated archive directory). To use, just browse to the directory and the index.html will load automatically.

Finally, a big change to allow HTTPS and HTTPS proxy support. It is initially with self-signed certs only, so your browser will warn you, but it’s fine/safe to use. The HTTPS port defaults to 18889, but it can be changed.

When you setup your browser as a proxy (instructions), the benefit becomes clear - you can use the same URLs as any AntTP instance on the clear net!

How does this magic work? Well, as all AntTP instances don’t retain any local state (beyond caching/config), the hostname port of the URL is interchangeable. Using AntTP as a proxy allows the hostname to be parsed/discarded and then routed to the local instance.

Why is this important? It means that defining or sharing links gets much easier. We don’t need a localhost:18888 or a different path. If you like using I am IMMUTABLE in your regular browser, you can use the same in your AntTP browser!

This also works with subdomain routing, if the DNS hosts support it (I don’t think antsnest does yet). However, DNS only likes 63 chars for subdomains and immutable addresses are 64 chars… so it would only work with shorter (what4names?) names. Watch this space… :wink:

So, we can now safely link to other AntTP addresses, knowing that it will always be accessible via a local AntTP instance as a proxy. We can also share the URLs online and use the gateways too!

Github: Release v0.18.1 · traktion/AntTP · GitHub
Dockerhub: https://hub.docker.com/r/traktion/anttp
Cargo: cargo install anttp

Edit: You may still need to cargo install anttp --locked if it fails to build.

11 Likes

With the configuration set like this, will the system work:

“allow”: [“6d980251698d3c9908e5d1e89eb51e768bf492f29c8e12f0879d841205f4d035”],
“deny”: [“all”]


Check out the Impossible Futures!

1 Like

Yes, you can either allow or deny all as a baseline. You can then specify individual mutable (pointers or registers) or immutable addresses to compliment this.

So, in short, you can either

  • block everything by default and only allow what is specified, or
  • allow everything by default and block what is specified.
2 Likes

anttp.antnest.site is down for now :frowning:

back soon(ish)

2 Likes

Meanwhile, folks could try using Firefox with a proxy pointing to a local instance. The same URLs should still work and you will get a warm glow of directly accessing Autonomi, free of gateways! :sweat_smile:

5 Likes
anttp.antnest.site

is back up eventually - sorry for the inconvenience.

Please also check anttp.site with the same links as antsnest.site

BigBuckBunny has escaped the nest https://anttp.anttp.site/4afb7c600370e04924b4b9134c73bed1489ee4856839d85a8a91c3eeb86fef74/bbb_4k/bbb_sunflower_2160p_60fps_normal.mp4

5 Likes

New AntTP v0.19.1 released:

  • Fixes issue where index.html was only loaded as a default when app-conf.json also existed.
  • Added update_bookmark_resolver_command to allow an address of a json document to be provided instead of CLI based key/value pairs. This makes it easier to change without rebuilding AntTP. In the future, it will update async too.
  • Fixed issue with access checker being overly aggressive when deny=all was the default. It now allows bookmarks and mutable addresses to be permitted, without requiring the underlying immutable to be explicitly allowed.
  • Minor refactors
  • Bumped autonomi and chunk-streamer libraries to latest

Github: Release v0.19.1 · traktion/AntTP · GitHub
Dockerhub: https://hub.docker.com/r/traktion/anttp
Cargo: cargo install anttp

Edit: You may still need to cargo install anttp --locked if it fails to build.

5 Likes

5 Likes

In the spirit of dog fooding, I decided to migrate my (quick and dirty!) Ant Node company website from Squarespace to a Publii (h/t @happybeing ) website on AntTP / Autonomi instead.

Publii works pretty well with AntTP. You can create a site relative links, choose a nice theme, then get it to create a tar file.

So, I simply run tarindexer on the tar file, then upload the file and it’s pretty much ready to go.

To add steez (ha!), I also created a pointer to the tarchive, then added a bookmark for the pointer to give it a name that matches the domain I own. For the curious, the bookmarks I use live here: http://anttp.anttp.site/95484badd3a5a731ec020cc137a4b070efa66981700dc75cf47a715909516ac839482ce9a5cabd3a49019e253ff2f02f

So, my website is now running on AntTP, with deny=all and allow set for the website tarchive. You can access it here: http://antnode.co.uk/ (this works on a proxy browser too, btw).

Also, you will see there is a link to my traktion-blog on IMIM, which I have also had a domain hanging around, with an intent to wire it up. So, now you can visit that through I am IMMUTABLE too (same for proxy browser too), with a couple more allowed tarchives.

Curious about the access lists too? You can see this here: http://anttp.anttp.site/a460a7c3c5d2a3707cec25fb7f3013b7ea758ed8f4b02ab3bd2b6cc05cae28983ab8208b786243967fe2ea2dafbaeb6d

To repeat, you can access all the above via anttp.site/antsnest.site or by a local proxy. I have mapped my domains to the above, partly as an experiment and partly because it links my clear net domains with AntTP/Autonomi.

You can still hit my Ant Node site via Ant Node - Ant Node. Note, the bookmark isn’t on anttp/antsnest yet and the index.html default fix in AntTP v0.19.1 isn’t deployed yet, but it will behave they same as the main link above once in place.

For the lazy, here is a screenshot:

I know, it’s a basic website in much need of improvement, but that’s for another day! :smiley:

EDIT: P.S. DNS is still propagating and I’ve pushed a lot of updates today. Apologies if any weirdness! :smiley:

8 Likes

Anyone knows if antsnest is down?

1 Like

Seems fine for me

1 Like

Trying use JAMS Lite to link to this .json file but it seems down, chatting with Cobite about it.
This is the adress, e0fed71b7a470ec0133b15d8ba2535faf00304121ae47526b7785e7a4983f41a .json

[

    {

"name": "Blood Moon Masquerade",

"artist": "Ai-Metal",

"album": "Halloween ai Metal",

"url": "74df191fdc115e08dd784ee7ab1ff091737c9d28ec50d8f82983d36cfba3bbd9",

"cover_art_url": "8898b50b0a05ece6124f1230618861dd03df6c6b59994598d83120eea67f81d3"

    },

    {

"name": "Blood Moon Warzone",

"artist": "Ai-Metal",

"album": "Halloween ai Metal",

"url": "e3b2b6028f1d54d29464f4232d68ef075c5bcb853c5f91f049fe850aa694de50",

"cover_art_url": "e9713bce3216e805822cc16653996cbdcc8e17dd966f910e4f8c8344f68373f3"

    },

    {

"name": "Blood Moon Requiem",

"artist": "Ai-Metal",

"album": "Halloween ai Metal",

"url": "7774ae3ecaf304b568fe4da99ed62bfaac8c2266821d7b59362f2915ef311396",

"cover_art_url": "777e4fcee9c23dd7010ef8904bc0af65d681001b3ee8f4b99804811ccd5b10dc"

    }

]

New AntTP v0.19.2 released:

  • Bumped autonomi and chunk-streamer libraries to latest (0.7.1 and 0.4.9 respectively)

Github: Release v0.19.2 · traktion/AntTP · GitHub
Dockerhub: traktion/anttp - Docker Image
Cargo: cargo install anttp

Edit: You may still need to cargo install anttp --locked if it fails to build.

7 Likes