Gateway uses something called blocators, which stands for Bitcoin Locators (previously BPS).
I've published the specs here:
github.com/Blockamoto/blocat…
It's looks like:
offset.output.tx.block
First satpoint of first output of first tx of second block:
0.0.0.1
I'm drafting a BIP.
WHY USE BLOCATORS?
When working with Bitcoin peers, you can only ask them for blocks. Not specific data inside.
That means, to use transaction ID's, you must have that block already, or know what block to ask for. In practical terms, this usually requires you to have a full node, since you don't know which block it is.
Since blocators point to the exact location, you can skip running a full node entirely and fetch data on-demand.
This means you don't need to have almost a terrabyte of storage available to work directly with Bitcoin.
I'm building Gateway indexes almost entirely on blocators. You can run transaction locators which indexes txid's against tx locators.
That means a translation from existing transaction hashes to blocators. This enables the use of traditional inscription ID's within Gateway.
This way you can also export indexes that use traditional ID's instead of blocators.
However, I'm so confident in blocators that I'm making it the default way to index with Gateway.
It's going slightly against the grain, but with a bridge between methods. But put it this way...
If ord used blocators for references like recursion, for example, there would be almost no need to use traditional inscription ID's.
This is a system I wrote independently of
@rodarmor for Gateway (and has been perculating for a long time), but later came to find that Casey proposed literally the mirror image of blocators in an early draft of the ord protocol.
Personally, I think Casey's biggest mistake is not using a system like this to begin with. It means that for on-demand systems like Gateway, we have to have a translation index from transaction ID's to blocators (or have the raw blocks themselves) to be able to resolve an inscriptions directly from Bitcoin peers.
So that's why Gateway uses inscription locators instead of inscription ID's, because we can resolve them on-demand from Bitcoin peers.
But the limitation is simply that recursion and any reference to inscription ID won't work without having the txid locator index or raw block index.
So I'm going all in on blocators. I'm writing a BIP for Bitcoin itself, and at some point I'll propose it for ordinals itself as an alternative to ID's.
For now, we just prove its usefulness in Gateway.
Any questions, please ask!
---
THE GATEWAY BITMAP UPDATE IS ON ITS WAY
Full Bitmap District and Parcel Indexing and exporting. It will ship with a much smoother user experience for the timeline, arming of tracks for indexing, control buttons, and general usability improvements.
You can index tracks in parrallel now, with prompts when that is the best thing to do, such as when you index Bitmap or inscriptions, it will now prompt you to also arm the transaction locator track.
Bitmap Chain will be held off until a 0.8.x update. The design is final, but there are some serious considerations I want to put to the community before I roll it out. You can view the current design on the "chain" branch of the bitmap github:
github.com/Blockamoto/bitmap…
I'm not sweating it right this second, my focus is finishing up 0.7.x versions. After the Bitmap v0.7.8 update, the v0.7.9 will be most likely be the last 0.7.x update for deeper Ordinals indexing and usability features, which will land us nicely on v0.8.x, where my intent is validation features, a full index building engine, and tightening the ship, testing it compulsively until we are ready for the 0.9.x versions, where I will begin implementing Gateway p2p features for on-demand index sharing. Where a bitcoin node will not get you the answer, in 0.9.x versions onwards, Gateway peers shall bridge the gap. And I intend to bridge Gateway and Bitcoin peers to web hopefully in 0.9.x. One day, even mobile.
When that's done, I think we'll be ready for primetime, which is v1! At that point, I may change the name to Bitcoin Gateway just so I can appeal to plebs. If we ever add wallet features, it will be after v1, but I'm not rushing to do anything like that as it's not the main goal, and there are huge risks there. I may even keep this client focused solely on serving data.
---
Anyway, that's my word for now!
Stay notified for the Bitmap update 🔔