A layer 1 communication system through MetaMask snaps. Ethereum Name Service is leveraged to allow users to send messages to others using simple domain names instead of having to remember an etherum public key. IPFS is also leveraged to store the sender and recipient addresses, as well as the message. A smart contract is leveraged to push the IPFS hash of the message to the ethereum blockchain. Dfuse is used on the recipient side to listen to for new messages. The message is then accessed by IPFS hash and presented to the recipient.
Connexion requires two computers to demo. The following steps must be completed for each computer:
Each of these must be set up with the Metamask (beta) extension located in metamask-snaps-beta-build
. The following steps must the be completed for each computer:
cd snap/decoder
browserify decode.js -s decoder > decodeBundle.js
cd ../send
browserify send.js -s sender > sendBundle.js
Run the following in the root directory:
docker-compose build && docker-compose up
Connexion should now be running at localhost:8081!