bshambaugh / BlinkyProject

4 stars 0 forks source link

Design DIDComm for ESP32 #11

Open bshambaugh opened 1 year ago

bshambaugh commented 1 year ago

https://github.com/decentralized-identity/did-jwt/issues/225 (JWE for P-256)

https://espressif-docs.readthedocs-hosted.com/projects/espressif-esp-drone/en/latest/communication.html , https://github.com/espressif/esp-idf/ ... identify server and client not by ip address but by did:key and resolve ip address from this if needed for connection ? (how do I structure the web socket server and client ... do I switch my present configuration and make my Node.js server the websocket client and the ESP32 the server?) https://docs.espressif.com/projects/esp-at/en/latest/esp32/AT_Command_Examples/TCP-IP_AT_Examples.html https://www.instructables.com/ESP32-Control-Via-UDP-Datagrams/ https://docs.espressif.com/projects/esp-at/en/latest/esp32/AT_Command_Examples/TCP-IP_AT_Examples.html#udp-transmission-with-changeable-remote-ip-address-and-port

resolve client ip from websocket server: https://stackoverflow.com/questions/14822708/how-to-get-client-ip-address-with-websocket-websockets-ws-library-in-node-js for server on ESP32: https://github.com/morrissinger/ESP8266-Websocket

do radio: https://bitluni.net/am-radio-transmitter do analog tv: https://www.youtube.com/watch?v=SSiRkpgwVKY

WiFi: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wifi.html (runs below websockets I think, I don't think you can design your own wifi protocol, nor should you ... read it though....and understand what level didcomm lies on in comparison to websockets, http, tcp/ip ... I think you can send raw packets somehow...hmm... https://gist.github.com/mic159/f546974d642f4189958423fbefe27902)

https://docs.espressif.com/projects/esp-idf/en/v4.3-beta2/esp32/api-guides/wifi.html#side-effects-to-avoid-in-different-scenarios "Theoretically, if we do not consider the side-effects the API imposes on the Wi-Fi driver or other stations/APs, we can send a raw 802.11 packet over the air, with any destination MAC, any source MAC, any BSSID, or any other type of packet. However,robust/useful applications should avoid such side-effects. The table below provides some tips/recommendations on how to avoid the side-effects of esp_wifi_80211_tx() in different scenarios." for https://github.com/Jeija/esp32-80211-tx/blob/806553b0b81c58c3e03b6b2565c1609c5a800673/main/main.c#L86 or https://docs.espressif.com/projects/esp-idf/en/v4.3-beta2/esp32/api-reference/network/esp_wifi.html#_CPPv417esp_wifi_80211_tx16wifi_interface_tPKvib

communication layers: https://espressif-docs.readthedocs-hosted.com/projects/espressif-esp-drone/en/latest/communication.html

Do it over....sockets ... didcomm over a mesh network??? https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wifi.html >> https://www.hackster.io/davidefa/esp32-wireless-mesh-made-easy-with-painlessmesh-part-1-f716f5 https://www.hackster.io/davidefa/esp32-wireless-mesh-made-easy-with-painlessmesh-part-2-1cfc1d https://github.com/espressif/esp-mdf

Do it with ESP-NOW? ESP-NOW - Peer to Peer ESP32 Network https://www.youtube.com/watch?v=bEKjCDDUPaU

https://identity.foundation/didcomm-messaging/spec/ , https://didcomm.org/ , https://github.com/decentralized-identity/didcomm.org/blob/main/docs/protocol-example.md

https://github.com/hyperledger/aries-rfcs/blob/main/concepts/0003-protocols/README.md https://github.com/decentralized-identity/didcomm-messaging#implementations https://github.com/uport-project/veramo/tree/next/packages/did-comm/src https://github.com/decentralized-identity/didcomm-rs https://github.com/decentralized-identity/DIDComm-js ...

https://github.com/decentralized-identity/didcomm-bluetooth/blob/main/spec.md https://github.com/decentralized-identity/didcomm https://medium.com/datev-techblog/didcomm-didcomm-messaging-3e10fbf12bb8

Don't confuses hyperledger indy with hyperledger aries. The former has to do with V.C.

bshambaugh commented 1 year ago

The messages should be done in CBOR, especially for lightweight protocols like LoRa. https://cbor.io/

or try DIoTDComm from "A low-overhead approach for self-sovereign identity in IoT" from Geovane Fedrecheski et al. https://arxiv.org/abs/2107.10232

bshambaugh commented 1 year ago

This was a useful AMA for DIDCOmm:

https://twitter.com/DecentralizedID/status/1603560206792675328?s=20&t=tq_Uzp66hcVWCcQeeqb_ig

https://www.youtube.com/watch?v=iIlqFLQRAn8