Sign in

Gui Michel

@guillaume.michel.id
140 followers 115 following 41 posts

Routing bytes to where they're needed. Distributed systems & p2p protocols.

PostsRepliesMedia
Gui Michel @guillaume.michel.id · 06/10/2026
Small hands couldn't switch on the living room lights without a phone, and guests had no app. So I freed a Frameo photo frame from its vendor lock-in: it shows our photos, and a tap turns it into a light switch. Local-first, no cloud. guillaume.michel.id/posts/photo-...
guillaume.michel.id
Turning a Photo Frame into a Local Light Switch
A locked-down Android photo frame turned into a local-first light switch and family photo frame, with FreeKiosk, Immich Kiosk and Home Assistant.
010
Reposted by Gui Michel
DASL @dasl.ing · 09/09/2026
First, we'll have @guillaume.michel.id showing us VeriTiles (github.com/guillaumemic...), which are mapping tiles that are addressed with CIDs and verified as they load. Makes your mapping safely distributed.
github.com
GitHub - guillaumemichel/veritiles: Verified map tiles: fetch PMTiles byte ranges from any untrusted HTTP host and cryptographically verify every byte against a content identifier before your map rend...
Verified map tiles: fetch PMTiles byte ranges from any untrusted HTTP host and cryptographically verify every byte against a content identifier before your map renders it. Zero dependencies; drop-i...
152
Gui Michel @guillaume.michel.id · 30/08/2026
🌍 Updated demo: guillaumemichel.github.io/ipfs-pmtiles-demo The page ships four CIDs and no data URL at all. Every location — tiles, terrain, fonts, style — comes from hints.json beside it.
guillaumemichel.github.io
Verified PMTiles Globe with 3D Terrain
001
Gui Michel @guillaume.michel.id · 30/08/2026
The document is outside the root of trust — never hashed, never anchored. A hostile hints file can misdirect a request; it cannot change a result that verifies. Same principle as RASL: the CID is the authority, locations are only hints. dasl.ing/rasl.html
dasl.ing
DASL: RASL — Retrieval of Arbitrary Structures & Links
RASL is a URL scheme used to identify content-addressed DASL resources along with a simple HTTP-based retrieval method.
100
Gui Michel @guillaume.michel.id · 30/08/2026
veritiles v0.4 is out 🚀 Routing hints: an untrusted hints.json beside your page maps CIDs to URLs. {"hints": {"bafyrei…": ["cdn.example/world.pmtiles"]}} Your JS keeps the anchor and drops the URL — `source` is optional now. github.com/guillaumemichel/veritiles @dasl.ing @atproto.com
github.com
GitHub - guillaumemichel/veritiles: Verified map tiles: fetch PMTiles byte ranges from any untrusted HTTP host and cryptographically verify every byte against a content identifier before your map rend...
Verified map tiles: fetch PMTiles byte ranges from any untrusted HTTP host and cryptographically verify every byte against a content identifier before your map renders it. Zero dependencies; drop-i...
100
Gui Michel @guillaume.michel.id · 24/08/2026
What a journey it's been. Thank you to my amazing teammates at Shipyard ❤️ I'm now available and exploring what's next. Years of IPFS, libp2p, DHTs and content routing. Happy to go wherever distributed systems get hard — if that's your team, get in touch.
1171
Gui Michel @guillaume.michel.id · 20/08/2026
Would be glad to! Just registered to the next luma event
110
Gui Michel @guillaume.michel.id · 12/08/2026
🌍 Demo: Interactive globe with 3D terrain, fully statically hosted on GitHub Pages and fully verified on the client. No backend. No tile server. Just static files and proofs. Built on the amazing work of @maplibre.org, @protomaps.com and @mapterhorn.com guillaumemichel.github.io/ipfs-pmtiles...
guillaumemichel.github.io
Verified PMTiles Globe with 3D Terrain
010
Gui Michel @guillaume.michel.id · 12/08/2026
Proofs are also no longer PMTiles-specific. VerifiedFile can verify any file served through HTTP Range requests, including PMTiles. This generalizes the approach to other large static files — potentially even video — where data can be fetched in byte ranges and verified on the client.
120
Gui Michel @guillaume.michel.id · 12/08/2026
veritiles v0.3 is out 🚀 The proof format is now DASL + AT Protocol compatible from the ground up, using raw/dag-CBOR CIDs, DRISL descriptors and MASL bundles. github.com/guillaumemichel/veritiles @dasl.ing @atproto.com
github.com
GitHub - guillaumemichel/veritiles: Verified map tiles: fetch PMTiles byte ranges from any untrusted HTTP host and cryptographically verify every byte against a content identifier before your map renders it. Zero dependencies; drop-in pmtiles Source for MapLibre GL, Leaflet, and OpenLayers.
Verified map tiles: fetch PMTiles byte ranges from any untrusted HTTP host and cryptographically verify every byte against a content identifier before your map renders it. Zero dependencies; drop-i...
2124
Gui Michel @guillaume.michel.id · 25/07/2026
Real DAG/CAR only appears for whole-file assets (style/sprites/glyphs), verified via CARv1 + dag-pb — different mechanism from the tile shard proofs above.
000
Gui Michel @guillaume.michel.id · 25/07/2026
It's not literally a DAG with a CID per tile. Root CID only anchors metadata.json (reconstructed as a dag-pb dir node). Below that, tile proofs are ad-hoc 36B fixed-width shard records (offset + sha256) — a flat binary index, not a UnixFS tree — so the client can bisect without parsing.
100
Gui Michel @guillaume.michel.id · 19/07/2026
I don't have much bandwidth at the moment, but I may experiment with it in a few months 👍
010
Gui Michel @guillaume.michel.id · 19/07/2026
Yeah, publishing tile metadata (source, date, license, coverage, resolution) as discoverable records could work well as a catalog. It would let people compare and pick the right map source for their application, not just find one.
100
Gui Michel @guillaume.michel.id · 18/07/2026
Yeah, fair enough, this is content distribution, not discovery. Different layer of the stack. And map tiles probably don't qualify as civic data either 😁
110
Gui Michel @guillaume.michel.id · 17/07/2026
I am currently iterating on the library github.com/guillaumemic...
github.com
GitHub - guillaumemichel/veritiles: Verified map tiles: fetch PMTiles byte ranges from any untrusted HTTP host and cryptographically verify every byte against a content identifier before your map rend...
Verified map tiles: fetch PMTiles byte ranges from any untrusted HTTP host and cryptographically verify every byte against a content identifier before your map renders it. Zero dependencies; drop-i...
000
Gui Michel @guillaume.michel.id · 17/07/2026
I have been hacking around verified map tiles distribution. Demo: guillaumemichel.github.io/ipfs-pmtiles... It is still an early prototype, but you can look how it works at github.com/guillaumemic...
guillaumemichel.github.io
Verified PMTiles Globe with 3D Terrain
200
Gui Michel @guillaume.michel.id · 14/07/2026
Repo: github.com/guillaumemichel/ipfs-pmtiles-demo
github.com
GitHub - guillaumemichel/ipfs-pmtiles-demo: Distributing cryptographically verified PMTiles
Distributing cryptographically verified PMTiles. Contribute to guillaumemichel/ipfs-pmtiles-demo development by creating an account on GitHub.
000
Gui Michel @guillaume.michel.id · 14/07/2026
The globe is real terrain — Mapterhorn elevation, Protomaps vectors, each its own package with its own CID and its own proofs. Kept deliberately light: zoom 0-6 for the map, 0-4 for terrain. MapLibre oversamples past that, so the relief stays on all the way in, just softer.
100
Gui Michel @guillaume.michel.id · 14/07/2026
You can watch it fail. ?tamper=1 corrupts ~1/6 of the tile responses. The host can withhold a tile, but it can't alter one: tampering degrades to holes in the map and a red counter, never to wrong geography. guillaumemichel.github.io/ipfs-pmtiles-demo/?tamper=1
guillaumemichel.github.io
Verified PMTiles Globe with 3D Terrain
100
Gui Michel @guillaume.michel.id · 14/07/2026
Why it's that cheap to serve: every tile is one block, cut on tile boundaries. One range request returns exactly one tile's bytes, and the client already knows the hash it should have. Proofs represent a modest 0.24% storage overhead, and are fetched lazily.
100
Gui Michel @guillaume.michel.id · 14/07/2026
So: an S3 bucket. nginx. Caddy. Any CDN. This one is GitHub Pages: page and map data in a single static directory. Deploying it is copying a folder. (Sadly python built-in http server doesn't work. It ignores Range and hands back the whole file.)
100
Gui Michel @guillaume.michel.id · 14/07/2026
🌍 What does it take to host a verified 3D globe? A static file server that answers GET and a single Range request. That's the entire contract. No gateway, no server-side logic, no trusted API. The browser simply checks every tile against a supplied CID. guillaumemichel.github.io/ipfs-pmtiles-demo/
guillaumemichel.github.io
Verified PMTiles Globe with 3D Terrain
451
Gui Michel @guillaume.michel.id · 03/07/2026
go-libp2p-kad-dht v0.41.0 is out 🚀 Mostly provider-related bug fixes: reduced reprovide peak memory usage, fixed provider region coverage/resume logic, and a keystore reset-slot fix. github.com/libp2p/go-li...
github.com
Release v0.41.0 · libp2p/go-libp2p-kad-dht
NoteThis release was brought to you by the Shipyard team. What's Changed chore(deps): bump github.com/quic-go/quic-go from 0.59.0 to 0.59.1 by @dependabot[bot] in #1258 fix(keystore): non-collid...
011
Reposted by Gui Michel
ProbeLab @probelab.io · 10/06/2026
So, you want to use a DHT and glancing @libp2p.bsky.social kad DHT? Check ProbeLab's comprehensive guide on how to set things up, what to use and what not to use, what to avoid and what to pay special attention to: probelab.io/blog/libp2p-...
probelab.io
So, you want to use a DHT? Let us help you configure it correctly.
From public servers to private clusters: a practical configuration walkthrough for every libp2p DHT deployment pattern.
155
Reposted by Gui Michel
dig @dig.bsky.social · 11/03/2026
taking @iroh.computer to new places, security cameras can do better, and should do better youtu.be/GKvSE2g_Yss?...
youtu.be
what if your security camera was secure?
YouTube video by number 0
1265
Reposted by Gui Michel
Interplanetary Shipyard @ipshipyard.com · 26/02/2026
Kubo 0.40 is out! 🎉 🔢 IPIP-499: CID Profiles for reproducible imports 🔀 IPIP-523 + IPIP-524: Gateway format handling 🧹 Flatfs auto-cleans interrupted imports 🚇 P2P tunnels and AutoNATv2 🛠️ CLI and WebUI improvements 🐹 Go 1.26 and more! github.com/ipfs/kubo/releases/tag/v0.40.0
github.com
Release v0.40.0 · ipfs/kubo
NoteThis release was brought to you by the Shipyard team. 🔦 Highlights 🔢 IPIP-499: UnixFS CID Profiles 🧹 Automatic cleanup of interrupted imports 🌍 Light clients can now use your node for dele...
151
Reposted by Gui Michel
ProbeLab @probelab.io · 18/01/2026
ICYMI, ProbeLab has launched a brand new website to showcase the metrics we're publishing for @ipfs.tech, @ethereum.bsky.social, @filecoin.bsky.social, @polkadot.bsky.social, Gnosis, Celestia, Optimism, Base, Avail, with several more coming soon! Head to: probelab.io to see what's new!
probelab.io
ProbeLab Analytics
Monitoring and analytics for 9+ Web3 networks. Explore network topology, bootstrapper health, client diversity, and protocol metrics across IPFS, Ethereum, Filecoin, and more.
154
Reposted by Gui Michel
Interplanetary Shipyard @ipshipyard.com · 19/12/2025
You can finally self-host IPFS at home 🏠✨ Major updates to Kubo, Boxo, and Helia. DHT Provide Sweep, AutoTLS, HTTP retrieval. Here's everything we shipped in 2025: ipshipyard.com/blog/2025-sh...
ipshipyard.com
Shipyard 2025: Bringing IPFS Home
Seven Kubo releases, dozens of improvements across Rainbow, Desktop, WebUI, Companion, Helia, and the broader stack. The theme: making self-hosted IPFS practical on regular hardware. Highlights includ...
093
Gui Michel @guillaume.michel.id · 29/11/2025
We published a blog post explaining how Provide Sweep enables self-hosted Kubo nodes to reliably advertise millions of CIDs to the Amino DHT with smooth, predictable resource usage. Now default in Kubo v0.39 after successful testing in v0.38. ipshipyard.com/blog/2025-dh...
ipshipyard.com
Provide Sweep: Solving the DHT Bottleneck for Self-Hosting IPFS at Scale
Kubo 0.39 introduces Provide Sweep, a batching optimization for IPFS DHT providing, allowing resource-constrained nodes to dramatically scale content advertising with smooth and predictable resource u...
032
Gui Michel @guillaume.michel.id · 29/11/2025
Upgrade your Kubo node!
000
Gui Michel @guillaume.michel.id · 27/11/2025
The IPFS Amino DHT finally has a spec 🎉 specs.ipfs.tech/routing/kad-...
specs.ipfs.tech
IPFS Kademlia DHT
The IPFS Distributed Hash Table (DHT) specification defines a structured overlay network used for peer and content routing in the InterPlanetary File System (IPFS). It extends the libp2p Kademlia DHT ...
020
Reposted by Gui Michel
Interplanetary Shipyard @ipshipyard.com · 02/10/2025
🚢 Kubo 0.38 is out! 🧹 Opt-in Sweeping DHT Provider handles CID announcements predictably with reduced resources 🚨 Gateway errors with retrieval diagnostics 🎨 WebUI v4.9 w/ Diagnostics screen 📌 Pin name and MFS fixes ⚙️ Simplified Provide config github.com/ipfs/kubo/re...
github.com
Release v0.38.0 · ipfs/kubo
NoteThis release was brought to you by the Shipyard team. Overview 🔦 Highlights 🚀 Repository migration: simplified provide configuration 🧹 Experimental Sweeping DHT Provider 📊 Exposed DHT metr...
051
Gui Michel @guillaume.michel.id · 02/10/2025
Same experience here. Owned both and completely agree.
030
Gui Michel @guillaume.michel.id · 14/09/2025
Code: github.com/guillaumemic...
github.com
GitHub - guillaumemichel/ipfs-pmtiles-demo: Distributing PMTiles from IPFS
Distributing PMTiles from IPFS. Contribute to guillaumemichel/ipfs-pmtiles-demo development by creating an account on GitHub.
100
Gui Michel @guillaume.michel.id · 14/09/2025
Shipped a cool demo showing map tiles served over IPFS! 🗺️ Why does this matter? Decentralized maps = no single point of failure, offline-first geographic data, and community-owned infrastructure Zoom around bafkreiclsdmwsgzkitv5g2akcdxugrotppn3mcg6lzukcjyj5cj5aferfy.ipfs.dweb.link
bafkreiclsdmwsgzkitv5g2akcdxugrotppn3mcg6lzukcjyj5cj5aferfy.ipfs.dweb.link
PMTiles Map over IPFS!
172
Reposted by Gui Michel
SgtPooki @sgtpooki.com · 20/08/2025
Anyone looking to adopt a battle-tested TypeScript polyglot? 🐙 Ex-PayPal, Amazon, Protocol Labs — raised the bar at Amazon, led OSS with ~60k–100k+ MAU, and helped shape IPFS & libp2p. Looking for a fun, high-impact project to code, mentor, and keep pushing systems (and people) forward. #adoptMe
266
Reposted by Gui Michel
IPFS @ipfs.tech · 25/07/2025
One Redditor calls 0.36 "an amazingly huge improvement": www.reddit.com/r/ipfs/comme... If your kubo node talks to the public network, it's probably worth the upgrade!
092
Gui Michel @guillaume.michel.id · 30/06/2025
I recommend using Swiss Topo for planning hikes in Switzerland
130
Reposted by Gui Michel
Interplanetary Shipyard @ipshipyard.com · 31/01/2025
🚀 Kubo v0.33.0 is out! Highlights: ✨ Streamlined AutoTLS listener setup 🔄 Shared listeners between TCP & WebSocket transports ⚡️ New datastore options to improve writes with Pebble 🛠️ MFS stability improvements 🌐 New DoH resolvers for .eth and .crypto 🧰 WebRTC Direct fixes github.com/ipfs/kubo/re...
github.com
Release v0.33.0 · ipfs/kubo
This release was brought to you by the Shipyard team. 🗣 Discuss 🔦 Highlights Shared TCP listeners AutoTLS takes care of Secure WebSockets setup Bitswap improvements from Boxo Using default libp...
0155
Reposted by Gui Michel
yiannis @yiannisbot.bsky.social · 10/01/2025
Weekly Network Health Reports for the Filecoin DHT are now a thing - brought to you by @probelab.io! Reports live on probelab.io - latest one is here: probelab.io/filecoin/dht... - and are produced weekly on Mondays.
probelab.io
Home
1125
Gui Michel @guillaume.michel.id · 19/09/2024
Introducing ProbeLab www.probelab.network/blog/hello-w...
probelab.network
Hello World
Check out what ProbeLab is up to and what we can do for your network.
020
Reposted by Gui Michel
Daniel Norman @norman.life · 05/09/2024
Debugging retrievability of blocks by CID in @ipfs.tech is now easier! Recent improvements to IPFS Check allow you to test retrievability with just a CID Learn more 👇 www.youtube.com/watch?v=XeNO...
youtube.com
Debugging CID Retrievability with IPFS Check
YouTube video by IPFS
042
Reposted by Gui Michel
kasteph.eth @steph.bsky.social · 11/09/2024
It may come as a surprise, but most @ethereum.bsky.social nodes are not on the big 3 cloud providers. Only 1003/8825 nodes are on AWS, 83/8825 on GCP, 50/8825 on Azure. You can read about it in our weekly reports on @probelab.io For this week's report on Ethereum: probelab.io/ethereum/dis...
075
Reposted by Gui Michel
Mark Gaiser @markg85.bsky.social · 16/10/2023
CURL 8.4.0 released a couple days ago with IPFS URI support! A project that took well over 500 days from start to finish 😁 @ipfs.tech #ipfs #curl blog.ipfs.tech/ipfs-uri-sup...
blog.ipfs.tech
IPFS URI support in CURL
CURL 8.4.0 shipped with built-in support for ipfs:// and ipns:// addresses.
12510
Gui Michel @guillaume.michel.id · 09/05/2023
DHT identifiers are bytes anyway. The different RPCs give context and disambiguate the identifiers 👍️
010
Gui Michel @guillaume.michel.id · 05/05/2023
@expede.wtf what do you mean by "update CIDs"?If you want to use a generic libp2p DHT (without IPFS), you could just define a new RPC ("feature"), accepting CIDs as input. This sub-DHT would be totally isolated from IPFS (no common "feature"), but you could still use IPFS bootstrapers to join.
110
Gui Michel @guillaume.michel.id · 05/05/2023
There is an ongoing discussion about creating a more stable and reliable sub-DHT github.com/ipfs/specs/issues/404
github.com
030
Gui Michel @guillaume.michel.id · 05/05/2023
The Composable DHT won't make nodes more stable, but not less stable either. Stability depends on the stability of the evaluated "feature". However, if you need very reliable network, with long lived peers, you would be able to add a new "feature" creating a sub-DHT of very stable nodes.
120
Gui Michel @guillaume.michel.id · 05/05/2023
I can only agree with @jorropo.net
010