PortX - Ledger Based Scheduling
Viewing the Schedule of a Port
Schedule a reservation through the UI
Reservation successfully booked
Map View allows you to search the world's ports that have registered with our reservation system
Getting the Schedule for a Port
A Port Reservation system powered by Blockchain and Corda.
Live and Usable: www.goportx.com
See the about page: https://www.goportx.com/about
Congestion problems are created at ports when drivers can’t move through terminals effectively. The increase in turn times is, in part, due to a high volume of containers passing through the ports, but is exacerbated by inefficiencies at the ports themselves as the ports struggle to find ways to keep up with increasing container volumes. In an effort to increase efficiency and decrease congestion to reduce turn times, ports across the country are working to implement new systems and procedures.
Ports and trucking companies operate independently, but often have to share resources. The goal of this project is to create a prototype of an online reservation system based on blockchain that will ultimately allow these vehicles to autonomously reserve and manage scheduling at different ports throughout the world.
What it does
PortX provides an online platform for reserving time slots at different ports. Trucking companies can share their intent by placing a reservation (if available) at any of the listed ports. Other companies can see that there's an existing reservation, without having to disclose unecessary identifying information to other parties about who is actually in the specific time slot.
How we built it
PortX is powered by the blockchain framework corda: https://github.com/corda/corda.
portx/- client side code (website) for the portx project
server/- server side code (ledger recording and querying logic) for portx. This server side code is backed by Corda (an open source blockchain project):
Challenges we ran into
Creating a distributed ledger backend was something that we weren't used to doing. We wanted to enable blockchain interaction while simultaneously providing core features such as port lookup and search. We leveraged the open source contract framework corda (https://github.com/corda/corda) to create a ledger-based booking system, which we adapted for instead for schedule tracking.
Accomplishments that we're proud of
What we learned
How to implement flow states for secure/notarized contracts using a Corda. Creating a UI interface for querying and displaying the information state of the blockchain in an intuitive and user friendly way. While the blockchain (and internal storage mechanism) of the actual reservations are abstracted away, users can still get all the benefit, without the complexity, by using the PortX web interface and API's.
Running a cluster (example)
This project is based on Corda (https://github.com/corda/corda), to run the sample node configuration the following command can be used once the project is setup locally.
Refer to Running Nodes from the Corda docs for more information.
From the `client` folder:
yarn && yarn start
The app should now be running on port 8000, with the server responding on port 8001.
What's next for PortX
Next step would be to pilot the reservation system with a few ports or companies. This could be done with not a lot of overhead as long as we have access to some subset of their scheduling manifest information. The bookings can be managed autonomously through the PortX API if scripted. This would allow portx to seemlessly integrate a ledger based reservation system with their current workflows. In the future we could see vehicles scheduling their own reservations through the API, and the UI just for visualization. PortX could also be generalized as a reservation system for other assets shared by vehicles, where reservations for the particular time slot which could then be visible to others via the ledger.