0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-25 16:22:35 +01:00

Update README.

This commit is contained in:
Jason Volk 2019-02-16 13:50:23 -08:00
parent 6a6d190a02
commit 9b8f08a6e5
2 changed files with 27 additions and 28 deletions

View file

@ -14,7 +14,7 @@
<img align="right" src="https://i.imgur.com/TIf8kEC.png" />
</a>
#### Internet Relay Chat daemon: *Matrix Construct*
**Fast. Secure. Feature Rich. Community Lead.**
IRCd was a free and open source server which facilitated real-time communication over the
internet. It was started by Jarkko Oikarinen in 1988 at the University of Oulu and [its
@ -34,8 +34,8 @@ real-time communication for free and open source software: a *federation of netw
<img align="right" src="https://i.imgur.com/DUuGSrH.png" />
</a>
**This is the Construct** — the first Matrix server written in C++. It is designed to be
fast and highly scalable, and to be community developed by volunteer contributors over
**This is the Construct** — the community's own Matrix server. It is designed to be
fast and highly scalable, and to be developed by volunteer contributors over
the internet. This mission strives to make the software easy to understand, modify, audit,
and extend. It remains true to its roots with its modular design and having minimal
requirements.
@ -60,13 +60,12 @@ for its day to aid the virility of implementations. A vibrant and growing ecosys
### Dependencies
- **Boost** (1.66 or later)
Replacing libratbox.
- **RocksDB** Embedded database.
- **Sodium** Curve ed25519 for Federation.
- **OpenSSL** HTTPS TLS / X.509.
- **libmagic** (~Optional~) MIME type recognition.
- **zlib** or **lz4** or **snappy** (Optional) Compression.
- **Boost** library 1.66+
- **RocksDB** library 5.16.6.
- **Sodium** library for curve ed25519.
- **OpenSSL** library for HTTPS TLS / X.509.
- **magic** library for MIME type recognition.
- **zlib** or **lz4** or **snappy** (Optional) Compressions.
##### Build tools
@ -115,8 +114,18 @@ Additional documentation for building can be found in [doc/BUILD.md](doc/BUILD.m
### BUILD (standalone)
*Intended to allow building with dependencies that have not made their way
to mainstream systems.*
This section is intended to allow building with dependencies that have not
made their way to mainstream systems. Important notes:
- GCC: Ubuntu Xenial (16.04) users must use a PPA to obtain GCC-7 or greater; don't
forget to `export CXX=g++-7` before running `./configure` on that system.
- Boost: The required version is available through `apt` as `boost-all-dev` on
Ubuntu Cosmic (18.10). All earlier releases (including 18.04 LTS) can configure
with `--with-included-boost` as instructed below (or obtain that package instead).
- RocksDB: All users should configure with `--with-included-rocksdb` as
instructed below.
```
./autogen.sh

View file

@ -198,16 +198,9 @@ time, the DAG is linear.
|
```
This is because computers and the modern internet are actually quite fast. Even
in the broadcast model for reasonably large room, a server will have conveyed
an event to all other servers, or at least to the next server which will
transmit, before there is any conflict. This is the overwhelming majority of
cases.
For example, consider this curve from data collected in
#matrix-architecture:matrix.org. The number of references an event makes
is the key, and the count of events which has made that number of references
is the value.
Based on data collected for the Matrix chatroom workload, conflicts
occur about 3.5% of the time, and more than a simple conflict occurs
about 0.1% of the time. We will refer to these as periods of "turbulence."
```
1: 6848
@ -218,10 +211,9 @@ is the value.
6: 0
7: 0
```
Conflicts occurred about 3.5% of the time, and more than a simple conflict
occurred about 0.1% of the time. We will refer to these as periods of
"turbulence."
Here is some data from #matrix-architecture:matrix.org. The number of
references an event makes is the key, and the count of events which has
made that number of references is the value.
```
@ -274,8 +266,6 @@ having only received two out of the three transmissions in the previous round.
[M05]
|
```
The above scenario is a very rare occurrence but it is certainly seen in
practice by slow servers participating in large and busy rooms.
```