Skip to content

freenet-mobile/free-chat-2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

free_chat

A proof-of-concept of running a chat application over the Freenet.

This application implements an FCP library in Dart, which you can find under lib/src/fcp. It is nowhere complete but offers the foundation to finishing the library.

Usecase

Covers the needs for protection expected from a secure data broker for Multi-Party Data Exchange in IoT for Health

Workflow

  1. The first user creates an initial invite consisting of a handshakeUri (Unique KSK key) and a requestUri (USK key) and shares it via QR code with the chat partner
  2. The second user creates an invite response with their USK key and uploads it to the handshakeUri, and subscribes to the requestUri
  3. The first user checks for an invite response on the handshakeUri and also subscribes to the requestUri of the second user
  4. On message send the chat document on the requestUri gets updated
  5. As soon as a user gets notified by the usk subscription it downloades the newest chat and resolves the deltas with the local chat to always have the newest

Demo

You can find a demo of the application here

Pain points

  • The ClientPut takes way too long (especially on the initial handshake, which can take over 10 minutes).
  • There are a couple of Failed Errors I don't quite get how to fix, eg. "Not enough data" (28) found with it the "A node killed the request because it had recently been tried and had DNFed" (30)
  • ShortCodeDescription=Too many path components error (RedirectURI=USK@MPfWVX5LRsV4Kydc7MZzDz-SF2vsACubh254FhGQf0,mscpVYfGntiupHWVzdc4CTa-VLjABC9MXGYYri8Mfc,AQACAAE/chat/2)

Sources

  • https://flutter.dev/: Used to create the frontend of the application
  • Freenet-Mobile: Needed to run a Freenet node on the smartphone, which is used to chat
  • jFCPlib: As an inspiration for writing the FCP wrapper in Dart
  • FCPv2: Used to create the FCP wrapper

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dart 99.8%
  • Java 0.2%