From c90bda02067f04124548e81fe9454f48863706e5 Mon Sep 17 00:00:00 2001 From: Karissa McKelvey Date: Fri, 13 Jan 2017 12:49:14 -0800 Subject: add questions to faq, update links (#29) * add questions to faq, update links * add note about signaling server * consistent Dat case * Update faq.md * Update faq.md * add separation between general and technical FAQ * make faq->general a subheading --- docs/faq.md | 50 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index f37a786..e49044d 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -1,16 +1,26 @@ # FAQ -## Who is behind the project? +## General + +### Who is behind the project? Code for Science and Society (CSS), a US based 501(c)(3) not for profit organization set up to support the Dat project. CSS employs a Dat core development team. Dat is currently funded exclusively by philanthropic non-profit grants. The mission of CSS is to work with public institutions to produce open source infrastructure to improve the ability for researchers, civic hackers and journalists to find and use datasets. However, we actively welcome outside contributors and use cases beyond our own. -## Is Dat different from hyperdrive? +### How do Dat peers discover one another on the Internet? -[Hyperdrive](http://github.com/mafintosh/hyperdrive) is a file sharing network built for Dat. +Dat is very flexible. It currently uses 3 methods, and you can implement your own. -Dat uses hyperdrive and a variety of other modules. Hyperdrive and Dat are compatible with each other but hyperdrive is able to make lower-level decisions. Dat presents a user-friendly interface and ecosystem for scientists, researchers, and data analysts. + 1) Multicast udp, which lets it work over the local network (LAN), + 2) A distributed hash table, which lets it work without a central server, and + 3) Centralized signaling servers that run a modified version of DNS. + +We run a signaling server for users of our client applications. However, anyone can run a signaling server and can overwrite the default for their application. -## How is Dat different than IPFS? +### Are the Dat links guaranteed to be unique? + +It's not technically impossible that they'd collide, but it's extremely unlikely. Dat links are are 32 bytes long. That's 1.1579 x 10^77 possible numbers! + +### How is Dat different than IPFS? IPFS and Dat share a number of underlying similarities but address different problems. Both deduplicate content-addressed pieces of data and have a mechanism for searching for peers who have a specific piece of data. Both have implementations which work in modern Web browsers, as well as command line tools. @@ -18,27 +28,35 @@ The two systems also have a number of differences. Dat keeps a secure version lo In order for IPFS to provide guarantees about interoperability, IPFS applications must use only the IPFS network stack. In contrast, Dat is only an application protocol and is agnostic to which network protocols (transports and naming systems) are used. As a result, Dat cannot make the same types of interoperability guarantees as IPFS. -## Is there a JavaScript implementation? +### Is there a JavaScript or Node.js implementation? + +Yes, it is our only implementation. Find it on GitHub: [dat-node](http://github.com/datproject/dat-node). -Yes, it is our only implementation. Find it on GitHub: [dat-js](http://github.com/joehand/dat-js). +### Is there an online dataset registry, like GitHub? -## Is there an online dataset registry, like GitHub? +Yes. See [datproject/datfolder](http://github.com/datproject/datfolder) on GitHub. -Yes, but currently under heavy construction. See [dat.land](http://github.com/datproject/dat.land) +### Is there a desktop application? -## Is there a desktop application? +Yes. See [datproject/dat-desktop](http://github.com/datproject/dat-desktop) on GitHub. -Yes, but currently under heavy construction. See [dat-desktop](http://github.com/juliangruber/dat-desktop) +### Do you plan to have Python or R or other third-party language integrations? -## Does Dat use WebRTC? +Yes. We are currently developing the serialization format (like .zip archives) called [SLEEP](/sleep) so that third-party libraries can read data without reimplementing all of hyperdrive (which is node-only). -Our [dat.land](http://github.com/datproject/dat.land) prototype used WebRTC to transfer data between peers. Moving forward, we are not planning on immediately supporting WebRTC in any Dat client because of reliability issues and lack of support in non-browser environments. Our future browser implementations of Dat will use websockets to transfer data to non-browser Dat interfaces. +## Under the Hood -## Do you plan to have Python or R or other third-party language integrations? +### Is Dat different from hyperdrive? -Yes. We are currently developing the serialization format (like .zip archives) called [SLEEP](/sleep) so that third-party libraries can read data without reimplementing all of hyperdrive (which is node-only). +[Hyperdrive](http://github.com/mafintosh/hyperdrive) is a file sharing network built for Dat. + +Dat uses hyperdrive and a variety of other modules. Hyperdrive and Dat are compatible with each other but hyperdrive is able to make lower-level decisions. Dat presents a user-friendly interface and ecosystem for scientists, researchers, and data analysts. + +### Does Dat use WebRTC? + +Our [datfolder](http://github.com/datproject/datfolder) prototype used WebRTC to transfer data between peers. Moving forward, we are not planning on immediately supporting WebRTC in any Dat client because of reliability issues and lack of support in non-browser environments. Our future browser implementations of Dat will use websockets to transfer data to non-browser Dat interfaces. -## Dat on the CLI isn't connecting, how do I debug? +### Dat on the CLI isn't connecting, how do I debug? 1. Try running `dat doctor` and following the instructions 2. Try running your command with `DEBUG=discovery* ` in front, e.g. `DEBUG=discovery* dat sync` -- cgit v1.2.3