---
tags: PM
---
# Knowledge base
## Sources
### On messaging protocols
- [Signal Technical Specification](https://signal.org/docs/)
- [Whisper Wiki](https://github.com/ethereum/wiki/wiki/Whisper)
- [Whisper 6.0](https://geth.ethereum.org/docs/whisper/whisper-overview)
- [Telegram Protocol](https://core.telegram.org/mtproto)
- [W3F Messaging](https://github.com/w3f/messaging/)
- [ZeroMQ](https://zeromq.org)
- [Bitmessage: A Peer‐to‐Peer Message Authentication and Delivery System](https://bitmessage.org/bitmessage.pdf)
- [3Box Messaging](https://docs.3box.io/api/messaging)
- uses OrbitDB (CRDT db on IPFS)
- [Status Whitepaper](https://status.im/whitepaper.pdf)
- [Status Push Notification System](https://github.com/status-im/swarms/tree/master/ideas/086-push-notif-v2)
### On IPFS
- [Seminal talk](https://www.youtube.com/watch?v=Fa4pckodM9g&t=833s)
- [Awesome IPFS](https://awesome.ipfs.io/)
- [Awesome Open Source Projects IPFS](https://awesomeopensource.com/projects/ipfs)
- [A beginners guide to IPFS](https://hackernoon.com/a-beginners-guide-to-ipfs-20673fedd3f)
- [IPFS Docs](https://docs.ipfs.io/concepts/usage-ideas-examples/)
- [IPFS Companion Chrome Ext](chrome-extension://nibjojkomfdiaoajekhjakgkdhaomnch/dist/landing-pages/welcome/index.html)
- [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop#ipfs-desktop)
- [Astralboot - deploy code on a decentralised VM built on top of IPFS.](https://github.com/zignig/astralboot) [_Source_](https://books.google.com.hk/books?id=fvywDAAAQBAJ&pg=PA30&lpg=PA30&dq=IPFS+projects+user+data&source=bl&ots=-094lSeQOl&sig=ACfU3U1ACF5-g76vFdgLgV6l11ctTOVovg&hl=en&sa=X&ved=2ahUKEwj6yp2coODpAhXLFogKHct7AUg4ChDoATABegQICxAB#v=onepage&q=IPFS%20projects%20user%20data&f=false)
- [Is storing encrypted files on IPFS good enough?](https://medium.com/coinmonks/is-storing-encrypted-files-on-ipfs-good-enough-21e050d9de0)
### On decentralised databases
- [ThreadsDB Whitepaper](https://docsend.com/view/gu3ywqi)
[ThreadsDB paper dec2019](https://ipfs.io/ipfs/QmRjgbB5pTxUnoLFbXtDHs1ph5t5pUhRnYn1wFiYEpP5s1?filename=201912TextileThreads.pdf)
- [3Box Storage](https://docs.3box.io/api/storage)
- [Project Awesome-IPFS](https://project-awesome.org/ipfs/awesome-ipfs)
- [OrbitDB](https://github.com/orbitdb/orbit-db)
### On decentralised computation projects
- [Somn Docs](https://docs.sonm.com)
- [Golem Docs](https://docs.golem.network/#/)
### On decentralised orchestration
- [Ocean Whitepaper](https://oceanprotocol.com/tech-whitepaper.pdf)
- [iExec Whitepaper](https://iex.ec/wp-content/uploads/pdf/iExec-WPv3.0-English.pdf)
- [Sabotage-Tolerance Mechanisms for Volunteer Computing Systems](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.67.2962&rep=rep1&type=pdf)
### On decentralized storage
- [IPFS Docs](https://docs.ipfs.io/)
- [Swarm Docs](https://swarm-guide.readthedocs.io/en/latest/introduction.html)
-
- [Filecoin Docs](https://docs.filecoin.io/)
- [STORJ Docs](https://documentation.storj.io/)
### On decentralized protocols for indexing and querying data
- [TheGraph Docs](https://thegraph.com/docs/introduction#what-the-graph-is)
### Other
[cyber](https://cyber.page/gol)
[cyber: Computing the knowledge of the Great Web 16-May-2020](https://bafybeiayz5c526dmbxz5mfg444njl2pr4ienqq7dng65yjr3rn7xdgk5qy.ipfs.dweb.link/)
## Summaries
### Whisper
- **Low-bandwidth** -- Not designed for large data transfers.
- Messages less than 64K bytes, typically around 256 bytes.
- **Uncertain-latency** -- Not designed for RTC.
- **Dark** -- No reliable methods for tracing packets.
- Uses the "shh" protocol string of ÐΞVP2P
- One of the core objectives of the Whisper protocol to hide location of sender and receiver and in transit, make it difficult if not impossible to establish one, the other or both.
- Synchronous messaging protocol
### Bitmessage
- To send a message through the network, a proof-of-work must be completed in the form of a partial hash collision.
- The difficulty of the proof-of-work should be proportional to the size of the message.
- Each message includes the time in order to prevent the network from being flodded by a malicious user rebroadcasting old messages.
- All users receives all messages. User is responsible for attempting to decode each message with each of their private keys to see whether the message is bound for them.
- To support offline (asynchronous) messaging behavior nodes store all messages for two days and then delete them.
### Messaging Anonymity Trilemma
- Anonymity
- Latency
- Bandwidth