Releases: coronanet/go-coronanet
Happenings (v0.0.5)
This release introduces initial support for events! Events in the Corona Network represent real world meetups: house party, office meeting, girls night out, etc. Their purpose is to anonymously link multiple people together, so that they may notify each other about potential infection risks.
For a full description head over to the event spec.
Interesting resources:
Basic operations currently supported (exposed via Ghost Bridge):
- Creating a new cryptographic user
POST https://corona-network/profile
- Setting a profile for the local user
PUT https://corona-network/profile
- Retrieving the profile of the local user
GET https://corona-network/profile
- Setting an avatar for the local user
PUT https://corona-network/profile/avatar
- Retrieving the avatar of the local user
GET https://corona-network/profile/avatar
- Deleting the avatar of the local user
DELETE https://corona-network/profile/avatar
- Nuking the cryptographic user (and all data)
DELETE https://corona-network/profile
Networking operations currently supported:
- Enable the decentralized gateway
PUT https://corona-network/gateway
- Retrieve the decentralized gateway status
GET https://corona-network/gateway
- Disable the decentralized gateway
DELETE https://corona-network/gateway
Contact operations currently supported:
- Initiate a local pairing with a remote contact
POST https://corona-network/pairing
- Join a remote initiated pairing session (blocks)
PUT https://corona-network/pairing
- Wait for a locally initiated pairing to finish (blocks)
GET https://corona-network/pairing
- Retrieve the list of currently paired contacts
GET https://corona-network/contacts
- Retrieve the profile of a contact
GET https://corona-network/contacts/{id}/profile
- Override the profile of a contact
PUT https://corona-network/contacts/{id}/profile
- Retrieve the avatar of a contact
GET https://corona-network/contacts/{id}/profile/avatar
- Nuking a remote contact (and all data)
DELETE https://corona-network/contacts/{id}
Event operations currently supported:
- Organize a new event
POST https://corona-network/events/hosted
- Retrieve the list of hosted events
GET https://corona-network/events/hosted
- Retrieve the statistics of a hosted event
GET https://corona-network/events/hosted/{id}
- Conclude a locally hosted event
DELETE https://corona-network/events/hosted/{id}
- Retrieve the banner of a hosted event
GET https://corona-network/events/hosted/{id}/banner
- Update the banner of a hosted event
PUT https://corona-network/events/hosted/{id}/banner
- Delete the banner of a hosted event
DELETE https://corona-network/events/hosted/{id}/banner
- Initiate a checkin to a hosted event
POST https://corona-network/events/hosted/{id}/checkin
- Wait for a checkin to finish (blocks)
GET https://corona-network/events/hosted/{id}/checkin
- Check in to a remote event
POST https://corona-network/events/joined
- Retrieve the list of joined events
GET https://corona-network/events/joined
- Retrieve the statistics of a joined event
GET https://corona-network/events/joined/{id}
- Retrieve the banner of a joined event
GET https://corona-network/events/joined/{id}/banner
For details on the API calls, please check the v0.0.5 REST API spec.
Peering Reborn (v0.0.4)
This release contains a full rewrite of the peer-to-peer overlay network on top of Tor. A full rundown of the networking changes are summarized in #25, enough to say that the crypto from now on should be a lot more sound, the networking a lot more reliable and the battery usage should not depend on the number of contacts one has.
The release also makes networking API calls (gateway enabling, disabling, pairing init) async. With the rollout of the new P2P implementation, enabling/disabling networking on the gateway is independent of the existence of a local user.
Interesting resources:
Basic operations currently supported (exposed via Ghost Bridge):
- Creating a new cryptographic user
POST https://corona-network/profile
- Setting a profile for the local user
PUT https://corona-network/profile
- Retrieving the profile of the local user
GET https://corona-network/profile
- Setting an avatar for the local user
PUT https://corona-network/profile/avatar
- Retrieving the avatar of the local user
GET https://corona-network/profile/avatar
- Deleting the avatar of the local user
DELETE https://corona-network/profile/avatar
- Nuking the cryptographic user (and all data)
DELETE https://corona-network/profile
Networking operations currently supported:
- Enable the decentralized gateway
PUT https://corona-network/gateway
- Retrieve the decentralized gateway status
GET https://corona-network/gateway
- Disable the decentralized gateway
DELETE https://corona-network/gateway
Contact operations currently supported:
- Initiate a local pairing with a remote contact
POST https://corona-network/pairing
- Join a remote initiated pairing session (blocks)
PUT https://corona-network/pairing
- Wait for a locally initiated pairing to finish (blocks)
GET https://corona-network/pairing
- Retrieve the list of currently paired contacts
GET https://corona-network/contacts
- Retrieve the profile of a contact
GET https://corona-network/contacts/{id}/profile
- Override the profile of a contact
PUT https://corona-network/contacts/{id}/profile
- Retrieving the avatar of a contact
GET https://corona-network/contacts/{id}/profile/avatar
- Nuking a remote contact (and all data)
DELETE https://corona-network/contacts/{id}
For details on the API calls, please check the v0.0.4 REST API spec.
Hello World (v0.0.3)
This release is the very first end-to-end proof-of-concept. It supports creating a new user, setting a name and avatar image (jpeg), pairing with a remote user over the P2P CoronaNet and maintaining an overlay network with trusted contacts (and sharing user info and avatar). Completely decentralized!
Interesting resources:
Basic operations currently supported (exposed via Ghost Bridge):
- Creating a new cryptographic user
POST https://corona-network/profile
- Setting a profile for the local user
PUT https://corona-network/profile
- Retrieving the profile of the local user
GET https://corona-network/profile
- Setting an avatar for the local user
PUT https://corona-network/profile/avatar
- Retrieving the avatar of the local user
GET https://corona-network/profile/avatar
- Deleting the avatar of the local user
DELETE https://corona-network/profile/avatar
- Nuking the cryptographic user (and all data)
DELETE https://corona-network/profile
Networking operations currently supported:
- Enable the decentralized gateway
PUT https://corona-network/gateway
- Retrieve the decentralized gateway status
GET https://corona-network/gateway
- Disable the decentralized gateway
DELETE https://corona-network/gateway
Contact operations currently supported:
- Initiate a local pairing with a remote contact
POST https://corona-network/pairing
- Join a remote initiated pairing session (blocks)
PUT https://corona-network/pairing
- Wait for a locally initiated pairing to finish (blocks)
GET https://corona-network/pairing
- Retrieve the list of currently paired contacts
GET https://corona-network/contacts
- Retrieve the profile of a contact
GET https://corona-network/contacts/{id}/profile
- Override the profile of a contact
PUT https://corona-network/contacts/{id}/profile
- Retrieving the avatar of a contact
GET https://corona-network/contacts/{id}/profile/avatar
- Nuking a remote contact (and all data)
DELETE https://corona-network/contacts/{id}
For details on the API calls, please check the v0.0.3 REST API spec.
The Gate (v0.0.2)
This release defines and implements the REST APIs for the Tor gateway management. The same APIs are also exposed on the library side as Android services run from native code, so it's simpler to not have to jump through rest just to start/stop things.
Interesting resources:
Ghost Bridge (v0.0.1)
This is an empty boilerplate release, containing the minimal GhostBridge to cross over from React Native into Go. The goal is to host the initial .aar
Android archive so that people hacking on a UI mock don't have to touch Go/C, rather can just download pre-built libraries and still run the actual live Android project.