Where we are matters. Everywhere we go, we exist within a jurisdiction, which has the authority to make and enforce the rules we have to live by while we are there.
With location-aware connected devices, where we are becomes part of our digital identity. Our location affects the way our devices behave - what search results are returned - even, sometimes, what websites we can access.
Autonomous vehicles bring a new level of importance to accurately detecting and object's location, and governing it appropriately.
Geolocker is a spatial data registry built on Ethereum and IPFS. We created the system so individuals and, more often, organizations like governments and companies could autonomously and transparently make location data about their policy zones available.
What it does
With Geolocker, entities like local governments or firms can register a geometry on Ethereum. They name the zone - say, "London Congestion Zone". Critical data about the registration is written to a contract on Ethereum, and geodata is stored on IPFS using 3box.
If someone tries to register a geometry that is inside a geometry already registered, the owner of that parent zone has to approve the registration before it is approved and accepted into the registry. In this way hierarchies can be created - London zones must be approved by the UK zone owner.
How I built it
We built Geolocker using React, 3box, Solidity, metamask, mapbox-gl.js and turf.js.
Challenges I ran into
Working with geospatial data carries its own challenges on the decentralized web, mainly related to scale and computational complexity. Storing and computing spatial data on chain is rarely ideal. For this reason we pushed crucial spatial computations into the browser using Turf.js, and opted to store GeoJSON objects on IPFS using 3box. We also ran into many hang-ups writing Solidity, as usual ...
Accomplishments that I'm proud of
We came with a very vague idea of what we wanted to build. We'd discussed the idea for a bit but had not thought about implementing it on Ethereum until yesterday. We made a plan and implemented it in really just a few hours - building a functional interactive dashboard and deploying contracts on the Ropsten testnet.
What I learned
Geolocker is mainly designed to serve as a bridge between governments and autonomous vehicle manufacturers. These connected vehicles will travel in various jurisdictions - driving or sailing from country to country. The massive complexity created by requiring each vehicle manufacturer to interface with systems to alert local governments to their position when they drive into a new city mean that all but the most well-resourced manufacturers simply won't bother. And it is unrealistic to expect governments to try to push their spatial data - which changes when, say, a new airport is built - out to every autonomous vehicle in their territory.
Some global bridge between companies and governments would reduce the complexity of this system massively. Vehicles would need to connect to one place to get relevant geospatial data, no matter where they are in the world. Governments would need to keep one repository of spatial data and associated policies current - and would be able to do so autonomously.
What's next for Geolocker
We built Geolocker as a part of a much larger blockchain project called Hyperaware. With Hyperaware, connected sensors have policies enforced based on where they are on Earth: when a truck or a ship drives into a congestion zone or port, fees are automatically charged, appropriate people are alerted, access is granted to data and so on. Next we will integrate Geolocker into Hyperaware as the Zone Registry. Beyond that we would love to speak with land registry authorities about how they might use blockchain and decentralized web technologies to help them.