FAQ converted from WP
This commit is contained in:
parent
b24582aead
commit
803b3e9146
1 changed files with 413 additions and 0 deletions
413
supporting-docs/_posts/2015-08-19-faq.md
Normal file
413
supporting-docs/_posts/2015-08-19-faq.md
Normal file
|
@ -0,0 +1,413 @@
|
|||
---
|
||||
layout: post
|
||||
title: FAQ
|
||||
date: 2015-08-15 16:58:07
|
||||
categories: guides
|
||||
---
|
||||
<link href="/docs/guides/css/faq.css" type="text/css" rel="stylesheet" />
|
||||
|
||||
# FAQ
|
||||
{:.no_toc}
|
||||
|
||||
Categories
|
||||
----------
|
||||
{:.no_toc}
|
||||
|
||||
[General](#general)
|
||||
|
||||
[Quick Start](#quick-start)
|
||||
|
||||
[Standard](#standard)
|
||||
|
||||
[APIs](#apis)
|
||||
|
||||
[Reference Implementations](#reference-implementations)
|
||||
|
||||
|
|
||||
|
||||
FAQ Content
|
||||
-----------
|
||||
{:.no_toc}
|
||||
|
||||
|
||||
* TOC
|
||||
{:toc}
|
||||
|
||||
### General
|
||||
|
||||
##### What is Matrix?
|
||||
|
||||
Matrix is an ambitious new open standard for open, distributed,
|
||||
real-time communication over IP. It defines interoperable Instant
|
||||
Messaging and VoIP, providing pragmatic HTTP APIs and open source
|
||||
reference implementations for creating and running your own real-time
|
||||
communication infrastructure.
|
||||
|
||||
##### What is Matrix's Mission?
|
||||
|
||||
Matrix.org's initial inspiration and goal has been to fix the problem of
|
||||
fragmented IP communications. But Matrix's real potential and ultimate
|
||||
mission is to be a generic messaging and data synchronisation system for
|
||||
the web - allowing people, services and devices to easily communicate
|
||||
with each other with full history.
|
||||
|
||||
##### What does Matrix provide?
|
||||
|
||||
Today Matrix provides a new [open standard](/docs/spec),
|
||||
[APIs](/docs/api) to integrate a service to the Matrix ecosystem and
|
||||
reference [open source
|
||||
implementations](http://github.com/matrix-org/synapse) of the standard.
|
||||
|
||||
##### What does this mean for users?
|
||||
|
||||
The aim is to provide an analogous ecosystem to email - one where you
|
||||
can communicate with pretty much anyone, without caring what app or
|
||||
server they are using, using whichever app & server you chose to use,
|
||||
and a nice neutral identity system like an e-mail address or phone
|
||||
number to discover people to talk to.
|
||||
|
||||
##### What kind of company is Matrix.org?
|
||||
|
||||
Matrix is an open initiative which acts as a neutral custodian of the
|
||||
Matrix standard. It's not actually incorporated anywhere at the moment
|
||||
but we are looking at the best legal structure for the future. We are
|
||||
committed to keeping the Matrix project open.
|
||||
|
||||
##### Who is funding Matrix.org?
|
||||
|
||||
We have been given permission by our employers, Amdocs, to work on
|
||||
Matrix as an independent non-profit initiative.
|
||||
|
||||
##### Who is building Matrix?
|
||||
|
||||
We're a team of ~10 people with decades of experience building custom
|
||||
VoIP and Messaging apps for mobile network operators. Most of us have
|
||||
day jobs at Amdocs or OpenMarket, but we are supported by a mix of
|
||||
freelancers and volunteers.
|
||||
|
||||
##### Why are you called Matrix?
|
||||
|
||||
We are called Matrix because we provide a structure in which all
|
||||
communication can be matrixed together.
|
||||
|
||||
##### Why have you released this as open source?
|
||||
|
||||
We believe that any open standard defining interoperable communication
|
||||
needs to be justified, demonstrated and validated with transparent open
|
||||
source implementations. For Matrix to achieve its mission of making all
|
||||
communications services interoperable we believe it needs to be truly
|
||||
open, giving people access to take all the code we produce and to use
|
||||
and build on top of it.
|
||||
|
||||
##### What do you mean by open?
|
||||
|
||||
Matrix is an open standard, meaning that we have freely published the
|
||||
details for how to interface with Matrix compliant servers and clients,
|
||||
and encourage anyone and everyone to interface with them. We also
|
||||
ensure the standard is not encumbered by any known patent licensing
|
||||
requirements.
|
||||
|
||||
|
|
||||
|
||||
Matrix is also open source, meaning that we have released the source
|
||||
code of the reference servers and clients to the public domain under the
|
||||
[Apache Licence v2](http://www.apache.org/licenses/LICENSE-2.0.html), to
|
||||
encourage anyone and everyone to run their own servers and clients, and
|
||||
enhance them and contribute their enhancements as they see fit.
|
||||
|
||||
##### What does federated mean?
|
||||
|
||||
Federation allows separate deployments of a communication service to
|
||||
communicate with each other - for instance a mail server run by Google
|
||||
federates with a mail server run by Microsoft when you send email from
|
||||
@gmail.com to @outlook.com.
|
||||
|
||||
|
|
||||
|
||||
Federation is different to interoperability, as interoperable clients
|
||||
may simply be running on the same deployment - whereas in federation the
|
||||
deployments themselves are exchanging data in a compatible manner.
|
||||
|
||||
|
|
||||
|
||||
Matrix provides open federation - meaning that anyone on the internet
|
||||
can join into the Matrix ecosystem by deploying their own server.
|
||||
|
||||
##### How is this like e-mail?
|
||||
|
||||
When email was first set up in the early ‘80s, companies like Compuserve
|
||||
and AT&T and Sprint set up isolated email communities which only allowed
|
||||
you to exchange mail with users on the same system. If you got your
|
||||
email from one service and your friend from another, then you couldn't
|
||||
message each other. This is basically the situation we're in today with
|
||||
VoIP and IM.
|
||||
|
||||
##### Why has no-one done this before?
|
||||
|
||||
There have been several attempts before including SIP, XMPP and RCS.
|
||||
All of these have had some level of success, but
|
||||
technological/usability/economic factors have ended up limiting their
|
||||
success in providing true open federation.
|
||||
|
||||
##### What is the difference between Matrix and IRC?
|
||||
|
||||
We love IRC. In fact, as of today the core Matrix team still uses it as
|
||||
our primary communication tool. Between us we've written IRCds, IRC bots
|
||||
and admined dreamforge, UnrealIRCd, epona, ircservices and several
|
||||
others. That said, it has some limitations that Matrix seeks to improve
|
||||
on:
|
||||
|
||||
- Text only
|
||||
- No history
|
||||
- No multiple-device support
|
||||
- No presence support
|
||||
- Fragmented identity model
|
||||
- No open federation
|
||||
- No standard APIs, just an archaic TCP line protocol
|
||||
- Non-standardised federation protocol
|
||||
- No built-in end-to-end encryption
|
||||
- Disruptive net-splits
|
||||
- Non-extensible
|
||||
|
||||
##### What is the difference between Matrix and XMPP?
|
||||
|
||||
The Matrix team used XMPP (Openfire, ejabberd, spectrum, asmack,
|
||||
XMPPFramework) for IM before starting to experiment with open HTTP APIs
|
||||
as an alternative. The main issues with XMPP that drove us in this
|
||||
direction were:
|
||||
|
||||
- Not particularly web-friendly - you can't easily speak XMPP from a
|
||||
web browser. (N.B. Nowadays you have options like XMPP-FTW and
|
||||
Stanza.io that help loads with letting browsers talk XMPP).
|
||||
- Single logical server per MUC is a single point of control and
|
||||
availability. (MUCs can be distributed over multiple physical
|
||||
servers, but they still sit behind a single logical JID and domain.
|
||||
FMUC improves this with a similar approach to Matrix, but at time of
|
||||
writing there are no open implementations.)
|
||||
- History synchronisation is very much a second class citizen feature
|
||||
- Stanzas aren't framed or reliably delivered without extensions. (See
|
||||
[wiki.xmpp.org](http://wiki.xmpp.org/web/Myths#Myth_Four:_XMPP_is_unreliable_without_a_bunch_of_extensions.)
|
||||
for an XMPP take on this)
|
||||
- Multiple device support is limited. (Apparently Carbons and MAM help
|
||||
with this)
|
||||
- Baseline feature set is so minimal that fragmentation of features
|
||||
between clients and servers is common
|
||||
- No strong identity system (i.e. no standard E2E PKI, unless you
|
||||
count X.509 certs, which [are
|
||||
questionable](http://www.thoughtcrime.org/blog/ssl-and-the-future-of-authenticity/))
|
||||
- Not particularly well designed for mobile use cases: push;
|
||||
bandwidth-efficient transports. (Since the time of writing a [Push
|
||||
XEP has appeared](http://xmpp.org/extensions/xep-0357.html), and
|
||||
[wiki.xmpp.org](http://wiki.xmpp.org/web/Myths#Myth_Three:_It.27s_too_bandwidth-inefficient_for_mobile.)
|
||||
claims that XMPP runs fine over a 9600bps + 30s latency link.)
|
||||
|
||||
The whole subject of XMPP vs Matrix seems to bring out the worst in
|
||||
people. We think of the standards as being quite different; at its core
|
||||
Matrix can be thought of as an eventually consistent global JSON db with
|
||||
an HTTP API and pubsub semantics - whilst XMPP can be thought of as a
|
||||
message passing protocol. You can use them both to build chat systems;
|
||||
you can use them both to build pubsub systems; each comes with different
|
||||
tradeoffs. Matrix has a 'kitchen sink' baseline of functionality; XMPP
|
||||
has a deliberately minimal baseline set of functionality. If XMPP does
|
||||
what you need it to do, then we're genuinely happy for you :) Meanwhile,
|
||||
rather than competing, an XMPP Bridge like [Skaverat's xmpptrix
|
||||
beta](https://github.com/SkaveRat/xmpptrix) has potential to let both
|
||||
environments coexist and make the most of each other's benefits.
|
||||
|
||||
##### What is the difference between Matrix and PSYC?
|
||||
|
||||
PSYC is a open federated messaging protocol loosely inspired by IRC. In
|
||||
version 1 it was a standalone protocol, and in version 2 it is being
|
||||
reutilised as the messaging layer on top of GNUnet. We honestly don't
|
||||
know that much about it, beyond trying to use psycd as an XMPP\<-\>IRC
|
||||
bridge in 2010. Matrix differentiates primarily by providing simple HTTP
|
||||
APIs rather than the more exotic compact line protocol in PSYC v1 or the
|
||||
complicated GNUnet stack in v2. Meanwhile, Matrix doesn't provide of
|
||||
the metadata protection guarantees that GNUnet/PSYC aims for.
|
||||
|
||||
|
|
||||
|
||||
See [http://about.psyc.eu/Matrix](http://about.psyc.eu/Matrix) for
|
||||
PSYC's views on Matrix.
|
||||
|
||||
##### What is the difference between Matrix and Tox?
|
||||
|
||||
Tox.im looks to be a very cool clone of Skype - a fully decentralised
|
||||
peer-to-peer network. Matrix is deliberately not peer-to-peer; instead
|
||||
each user has a well-defined homeserver which stores his data and that
|
||||
he can depend upon. Matrix provides HTTP APIs; Tox.im provides C APIs.
|
||||
We haven't actually played with Tox at all yet.
|
||||
|
||||
##### How does Matrix compare with something like Trillian or Pidgin?
|
||||
|
||||
Trillian and Pidgin and similar aggregating IM clients merge all your IM
|
||||
activity into a single user experience. However, your history and
|
||||
identity is still fragmented across the networks. People can't find you
|
||||
easily, and your history is fragmented (other than on the device
|
||||
where the client runs). And rather than being able to chose the right
|
||||
app for the job when communicating with people, you are pushed towards
|
||||
relying on a specific aggregation app.
|
||||
|
||||
##### What Matrix compliant apps are there?
|
||||
|
||||
None yet, other than our examples. It's early days :)
|
||||
|
||||
##### Why do you think existing apps will ever join this?
|
||||
|
||||
We firmly believe it is what is right for the consumer. As people begin
|
||||
to use interoperable communications tools service providers will see the
|
||||
benefit and compete on quality of service, security and features rather
|
||||
than relying on locking people into their walled garden. We believe as
|
||||
soon as users see the availability and benefits of interoperable
|
||||
services they will demand it.
|
||||
|
||||
##### Why aren't you doing this through the IETF? or W3C? or 3GPP?
|
||||
|
||||
We do recognise the advantages of working with existing standards
|
||||
bodies. We have been focused on writing code and getting it out. As
|
||||
Matrix matures it may well be appropriate to work with an official
|
||||
standard body.
|
||||
|
||||
|
|
||||
|
||||
### Quick Start
|
||||
|
||||
##### How do I get an account and get started?
|
||||
|
||||
The quickest way is to just jump to the demo webclient at
|
||||
[http://matrix.org/beta](http://matrix.org/beta) and sign up. Please note that you can point the
|
||||
webclient to access any homeserver - you don't have to use matrix.org,
|
||||
although as of day 1, matrix.org is the only communal homeserver
|
||||
available.
|
||||
|
||||
##### What can I actually do with this?
|
||||
|
||||
The demo webclient provides a simple chatroom interface to Matrix -
|
||||
letting the user interact with users and rooms anywhere within the
|
||||
Matrix federation. Text and image messages are supported, and basic
|
||||
voice-only VoIP calling via WebRTC is supported in one-to-one rooms.
|
||||
|
||||
##### How do I connect my homeserver to the public Matrix network?
|
||||
|
||||
See
|
||||
[http://github.com/matrix-org/synapse](http://github.com/matrix-org/synapse)
|
||||
for details
|
||||
|
||||
##### How do I Matrix-enable my existing app?
|
||||
|
||||
See the [Client-Server API
|
||||
HOWTO](http://matrix.org/docs/howtos/client-server.html) for an example
|
||||
of how to use Matrix's client-server API to let your app communicate
|
||||
with users via Matrix. We're currently working out the best way to
|
||||
integrate your application's existing identity system with Matrix.
|
||||
|
||||
##### How can I write a client on Matrix?
|
||||
|
||||
See the [Client-Server API
|
||||
HOWTO](http://matrix.org/docs/howtos/client-server.html) and the [API
|
||||
docs](/docs/api) and [the Spec](/docs/spec) for all the details you need
|
||||
to write a client.
|
||||
|
||||
##### *How can I help out with this?*
|
||||
|
||||
Install synapse and tell us how you get on. Critique the spec. Write
|
||||
clients. Just come say hi on [\#matrix:matrix.org](/alpha) or the
|
||||
[mailing lists](/mailman/listinfo/matrix-users)!
|
||||
|
||||
##### Where can I get support?
|
||||
|
||||
[\#matrix:matrix.org](/alpha), \#matrix on irc.freenode.net or
|
||||
the [mailing lists](/mailman/listinfo/matrix-users) are your best bets.
|
||||
|
||||
##### How do I register custom matrix event types?
|
||||
|
||||
We're not yet managing a registry of custom matrix event types. If you
|
||||
have any particularly good ones you want to tell the world about, please
|
||||
use the [mailing list](/mailman/listinfo/matrix-users) for now.
|
||||
|
||||
##### How mature is this?
|
||||
|
||||
We started working on Matrix in July 2014, and have opened it to the
|
||||
public in September 2014. It's early days, and under no circumstances
|
||||
should you use Matrix or Synapse for anything other than experimentation
|
||||
and learning at this point. Obviously the spec and apps are maturing
|
||||
rapidly, but as of the time of writing APIs are not frozen and the apps
|
||||
are very much a work in progress.
|
||||
|
||||
|
|
||||
|
||||
*Sorry, the FAQ is still work in progress, the rest of it will up
|
||||
soon!* *In the mean time, don't hesitate to get in touch on
|
||||
[\#matrix:matrix.org](/alpha) or the [mailing
|
||||
lists](/mailman/listinfo/matrix-users)!*
|
||||
|
||||
|
|
||||
|
||||
### Standard
|
||||
|
||||
##### What is a home server?
|
||||
|
||||
##### What is an identity sever?
|
||||
|
||||
##### Where do my conversations get stored?
|
||||
|
||||
##### What is a 3PID?
|
||||
|
||||
##### How do you do VoIP calls on Matrix?
|
||||
|
||||
##### Can I log into other homeservers with my username and password?
|
||||
|
||||
##### Why Apache Licence?
|
||||
|
||||
##### Can I write a Matrix homeserver?
|
||||
|
||||
##### How secure is this?
|
||||
|
||||
##### Why aren't you using an ORM layer like SqlAlchemy?
|
||||
|
||||
|
|
||||
|
||||
### APIs
|
||||
|
||||
##### How do I join the global Matrix federation?
|
||||
|
||||
##### What ports do I have to open up to join the global Matrix federation?
|
||||
|
||||
|
|
||||
|
||||
### Reference Implementations
|
||||
|
||||
##### What is Matrix built on - and why?
|
||||
|
||||
##### How do I run my own home server?
|
||||
|
||||
##### Can I run my own identity server?
|
||||
|
||||
Yes - the reference implementation is
|
||||
[sydent](https://github.com/matrix-org/sydent) and you can run your own
|
||||
ID server cluster that tracks 3rd party to Matrix ID mappings. If you
|
||||
want your server to participate in the global replicated Matrix ID
|
||||
service then please get in touch with us. Meanwhile, we are looking at
|
||||
ways of decentralising the 'official' Matrix identity service so that
|
||||
identity servers are 100% decentralised and can openly federate with
|
||||
each other. **N.B. that you can use Matrix without ever using the
|
||||
identity service - it exists only to map 3rd party IDs (e.g. email
|
||||
addresses) to matrix IDs to aid user discovery**.
|
||||
|
||||
##### What is Synapse?
|
||||
|
||||
##### Why is Synapse in Python/Twisted?
|
||||
|
||||
##### What are Synapse's platform requirements?
|
||||
|
||||
##### What are the Synapse webclient's requirements?
|
||||
|
||||
##### Where is the mobile app?
|
||||
|
||||
##### What decides the room member order on the webclient?
|
||||
|
||||
|
|
||||
|
||||
Any other question? Please contact us on
|
||||
[\#matrix:matrix.org](/alpha) or the [mailing
|
||||
lists](/mailman/listinfo/matrix-users)!
|
Loading…
Add table
Add a link
Reference in a new issue