SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
What is it? What’s changed lately? What’s next?



@benpa:matrix.org

benp@matrix.org

@matrixdotorg
1
2
What is Matrix?
What is Matrix?
Matrix is an open standard
for interoperable, decentralised,
real-time communication over the
Internet.
"3
What is Matrix?
Matrix provides a standard HTTP
API for publishing and subscribing
to real-time data in specified
channels…
"4
What is Matrix?
…which means it can be used to
power IM, VoIP/WebRTC
signalling, IoT communication…
"5
What is Matrix?
… and anything else that can be
expressed as JSON and needs to
be transmitted in real-time over
HTTP.
"6
Matrix: Distributed Architecture
Clients
Home
Servers
Identity
Servers
Application
Servers
"8
Telegram
Slack
Gitter
IRC
Github
"9
Telegram
Slack
Gitter
IRC
Github
No single party owns your
conversations.



Conversations are shared
over all participants.
"10
End to End Crypto with Olm and Megolm
• Without end-to-end encryption, Matrix’s replicated conversation
history is a privacy problem.
• ➔ Two years spent building decentralised E2E crypto into the
heart of Matrix.
"11
Security Assessment
• libolm 1.3.0 assessed by NCC Group in Sept 2016
• Findings released to the public!

https://www.nccgroup.trust/us/our-research/matrix-olm-
cryptographic-review
• Olm: 2x low risk finding, 1x informational
• Megolm: 1x high, 1x medium, 4x low risk.
• All findings fixed in libolm or the Matrix Client SDKs.
• No issues found in libolm since the audit!
"12
• Turning it on by default!
• Improved UX for managing device trust
• Cross-signing device keys
• Better device verification
• Better push notification UX for E2E rooms
• Matrix daemon support
• Negotiating E2E with legacy clients
"13
Olm: What’s next?
14
Ecosystem
Matrix Open Source Ecosystem
The Matrix Specification (Client/Server API)
client-sideserver-side
Other Servers:
Ruma (Rust),

Jeon (Java)…
Synapse

(1st gen Matrix
Server)
Application
Services and
Bridges
Other Clients:
…and many many more
Matrix iOS
Console
MatrixKit (iOS)
matrix-ios-sdk
Matrix
Web
Console
matrix-js-sdk
Matrix
Android
Console
matrix-android-sdk
Dendrite

(2nd gen Server)
Other Services:
Bridges, Bots, Integs…
Nheko!
(Qt/C++)
Quaternion
(Qt/C++)
gomuksThunderbird
Seaglass
(macOS)Fractal
(Gtk+/Rust)
matrix-react-sdk
Clients
• Clients available for every platform, with far more available this year
• Many client-side SDKs:
• Official: JS, React, iOS, Android
• Semi-official: Python, Perl5, Go
• Community: Erlang, Java, Scala, Ruby, Perl6, Lisp, Elixir, Haskell,
Rust…
"16
Home servers
• Synapse: reference Matrix home server from the core team.
• Huge codebase in Python/Twisted.
• Some major perf and maintainability challenges…
• … though lots of perf gains lately
• Dendrite: next-generation, work in progress HS from the core team
• ~30K lines of Golang
• Received love this summer from interns and GSOC (more later)
• Other home servers from the community using Rust, Java
TypeScript and more
"17
More home server implementation?
With the release of r0, we expect
to see an increase in home server
project activity.
"18
The Matrix APIs
• Client-Server API
• Server-Server API
• Application Service API
• Identity Server API
The Client-Server API
To send a message:
curl -XPOST -d '{"msgtype":"m.text", "body":"hello"}' "https://
alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ID/send/
m.room.message?access_token=ACCESS_TOKEN"
{
"event_id": "YUwRidLecu"
}
"20
To control a Hue light:
curl -XPOST –d '{
"room": "1",
"light": 2,
"brightness": 0.5,
}' "https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ID/send/
org.matrix.midi?access_token=ACCESS_TOKEN"
{ "event_id": “ORzcZn2” }
The Client-Server API
"21
Server-Sever API
• Synchronises messages and room state between servers, in real-time
• Can retrieve historic messages from each other
• Query profile and presence information about users on each other's servers
"22
Application Services API
• Have privileged access to the server
• Can subscribe to server traffic to provide custom application logic
• They can masquerade as 'virtual users'.
23
Bridges
Bridges
• IRC
• Discord
• Telegram
• Slack
• SMS
"24
• Gitter
• RocketChat
• Email
• Mastodon
• …more
25
Bridge
3rd party
Server
3rd party
Clients
Building Bridges
Typical Bridging Stack
"26
matrix-
appservice-

irc
matrix-appservice-bridge
matrix-appservice-node
matrix-js-sdk
Node JS
matrix-
appservice-
slack
matrix-
appservice-
purple …
Matrix to IRC
matrix-
appservice-irc
ircd
(e.g. Freenode)
IRC clients
Matrix to IOT…
Janus WebRTC Gateway
(from MeetEcho)
Parrot Bebop
Drone
29
What’s New?
30
Client Ecosystem
Explosion
Client Ecosystem explosion
There were a lot of clients 12 months ago, but now there is a
genuine choice of clients for day-to-day use
Not all of these were first released in the last year, but still, an
“explosion” of work and client development is fair to claim!
"31
Nheko
32
• Qt
• Supports E2E
• Looks great
Quaternion
• Qt, looks like a Qt app
• Creator is also
creator of
libQMatrixClient,
which supports
many projects
33
Spectral
• Qt, uses
libQMatrixClient
• Looks great
34
Seaglass
• Native macOS app
• supports E2E
• looks great
35
Fractal
• Gnome/GTK
• Rust
• rapidly evolving
• strong community
• Adding E2E soon, at
the Rust-level, so will
be client agnostic
• Supported by Purism
for librem5 device
36
Gomuks
• TUI
• written in Go
37
Client Ecosystem explosion
• Nheko - Qt, supports E2E, looks great
• Quaternion - Qt, looks like a Qt app
• Creator is also creator of libQMatrix, which supports many
projects
• Spectral - Qt, looks great
• Seaglass - Native macOS app, supports E2E, looks great
• Fractal - Gnome/GTK, Rust, rapidly evolving, strong community
• Gomuks - TUI, written in Go
"38
Spec Progress
• A known bottleneck
• Permanent Core Team member focused on driving this forwards
• So close……..
• Client Server API is ready
• Application Service (bots & bridges) API is ready
"39
"40
Synapse improvements
• Reference implementation and 99.999% of active home servers
• Regular incremental performance improvements
• Regular security improvements
• Noticeable improvement in responsiveness on matrix.org
• It’s now Python 3
• Installation streamlined and docs improved (thanks Robin)
"41
Google Summer of Code
• Two students working with the core team
• One made huge progress adding E2E bindings for the Python
SDK
• Another helped push Dendrite toward feature-completeness
• Gnome Project had two students working on Fractal (Gtk Client)
• Assisting with redesign and implementation of fundamental
features like room config screen
"42
DINSIC (French Government usage)
• Direction interministérielle du numérique et du système
d'information et de communication de l'État
• Deploying a huge private federation of Matrix homeservers
spanning the whole government
• Decentralised organisations (such as govt and academia)
appreciate the decentralised design of matrix, they can have
separate servers linked
• they can have different settings for many things, event security -
eg. AV severity
"43
DINSIC (French Government usage)
• Developed a fork of Riot for use as their official secure
communications client
• Now ready on iOS, Android, Web
• Now live with 15 servers, one per ministry
• Security Audit (with involvement from ANSSI, Intelligence Service)
happening today!
• We expect an increase in rollout speed after this
"44
Lazy Loading
• Specifically Lazy Loading of member list for rooms
• Can be a bottleneck for client performance but can be solved by
the server.
• Current implementation suggests an initial RAM usage reduction of
around 6x.
"45
The Matrix.org Foundation
• A UK non-profit company
• Guardians (five total, including some not from the Matrix
community)
• In progress:
• Property being transferred
• Articles of Association
"46
New users
• TADHack!
• 1946 total users on tadhack.vector.im
• Status.im using for their internal comms with a custom Riot theme
"47
48
Hosted Homeservers
Modular.im
• Hosted Homeservers: paid hosting from the creators of Matrix
• Matrix as a SaaS (“MaaS”? “MaaSaaS”?)
• web3.foundation using it internally
• Other adopters not yet announced… soon!
"49
Modular.im: Next steps
• Smaller servers for individuals
• Custom DNS
• Migration path for existing home servers
"50
51
What’s Next?
Spec r0 release
• Stable release of Matrix Spec
• We are so close!
• Client Server API is ready
• Application Service (bots & bridges) API is ready
• Federation API expected this year
• https://github.com/matrix-org/matrix-doc/projects/1
"52
Riot Redesign
• Current Riot is not always attractive
• The colours are not …. right
• Messaging software ecosystem is mature, there are things which
users are known to like (…Slack)
• Riot will be a glossy client, with other clients available to taste
"53
"54
"55
State Resolution: Reloaded
• The state of a room at an event is built up and updated by sending
state events into the room.
• View of the state of the room should be consistent across all servers.
• Problem: room graph forks and then merges again (e.g. if two servers
send events at the same time). State has to be resolved from the state
of the two branches: this is called the state resolution algorithm.
• Entirely new consensus algorithm
• Ideal algorithm should not allow malicious servers to avoid moderation
action by forking and merging the room graph
"56
Cross-signing
• Keep security, improve convenience
"57
e2e in new clients
• Currently in Riot, Nheko, Seaglass
• Needs more
• We should aim to enable e2e on private rooms by default
• Big progress happening in Fractal, will be client-agnostic
"58
What’s Next Summary
• Spec r0 release
• Riot Redesign
• E2E in more clients
• State Res reloaded
• Cross-signing
"59
60
What comes after
what comes next?
What’s after that?
• Dendrite, with other home servers filling the ecosystem
• Aggregations
• Emoji Reactions
• Editable messages
• Threading - future idea
• Decentralised identity
• matrix.org Foundation
"61
Thank You! Swag is available!



@benpa:matrix.org

benp@matrix.org

@matrixdotorg

Contenu connexe

Tendances

Matrix: The future of communication is decentralised, secure and interoperable
Matrix: The future of communication is decentralised, secure and interoperableMatrix: The future of communication is decentralised, secure and interoperable
Matrix: The future of communication is decentralised, secure and interoperable
Alan Quayle
 

Tendances (20)

All Things Open SDN, NFV and Open Daylight
All Things Open SDN, NFV and Open Daylight All Things Open SDN, NFV and Open Daylight
All Things Open SDN, NFV and Open Daylight
 
Introduction to Opendaylight
Introduction to OpendaylightIntroduction to Opendaylight
Introduction to Opendaylight
 
Sbrc 2014 Painel SDN
Sbrc 2014 Painel SDNSbrc 2014 Painel SDN
Sbrc 2014 Painel SDN
 
Matrix: The future of communication is decentralised, secure and interoperable
Matrix: The future of communication is decentralised, secure and interoperableMatrix: The future of communication is decentralised, secure and interoperable
Matrix: The future of communication is decentralised, secure and interoperable
 
FIWARE Global Summit - FogFlow GE: Intent-based Edge Programming
FIWARE Global Summit - FogFlow GE: Intent-based Edge ProgrammingFIWARE Global Summit - FogFlow GE: Intent-based Edge Programming
FIWARE Global Summit - FogFlow GE: Intent-based Edge Programming
 
Hyperledger Fabric Technical Deep Dive 20190618
Hyperledger Fabric Technical Deep Dive 20190618Hyperledger Fabric Technical Deep Dive 20190618
Hyperledger Fabric Technical Deep Dive 20190618
 
Is SDN ready for primetime?
Is SDN ready for primetime?Is SDN ready for primetime?
Is SDN ready for primetime?
 
Hyperledger community update 201805
Hyperledger community update 201805Hyperledger community update 201805
Hyperledger community update 201805
 
Tech Job Conference: Software Engineer @Criteo
Tech Job Conference: Software Engineer @CriteoTech Job Conference: Software Engineer @Criteo
Tech Job Conference: Software Engineer @Criteo
 
Hyperledger Fabric EVM Integration Feb 20, 2018
Hyperledger Fabric EVM Integration Feb 20, 2018Hyperledger Fabric EVM Integration Feb 20, 2018
Hyperledger Fabric EVM Integration Feb 20, 2018
 
IO Visor Summit 2017: Welcome & Overview via Pere Monclus
IO Visor Summit 2017: Welcome & Overview via Pere MonclusIO Visor Summit 2017: Welcome & Overview via Pere Monclus
IO Visor Summit 2017: Welcome & Overview via Pere Monclus
 
SDN :: Software Defined Networking –2017 Executive Overview
SDN :: Software Defined Networking –2017 Executive OverviewSDN :: Software Defined Networking –2017 Executive Overview
SDN :: Software Defined Networking –2017 Executive Overview
 
Introduction to OpenDaylight
Introduction to OpenDaylightIntroduction to OpenDaylight
Introduction to OpenDaylight
 
Onug lunch talk may 12 2015 no video
Onug lunch talk may 12 2015 no videoOnug lunch talk may 12 2015 no video
Onug lunch talk may 12 2015 no video
 
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
Internet of Things - protocols review (MeetUp Wireless & Networks, Poznań 21....
 
Comparison of Open Source Frameworks for Integrating the Internet of Things
Comparison of Open Source Frameworks for Integrating the Internet of ThingsComparison of Open Source Frameworks for Integrating the Internet of Things
Comparison of Open Source Frameworks for Integrating the Internet of Things
 
Traffic Insight Using Netflow and Deepfield Systems
Traffic Insight Using Netflow and Deepfield SystemsTraffic Insight Using Netflow and Deepfield Systems
Traffic Insight Using Netflow and Deepfield Systems
 
Cloud-Native Application Debugging with Envoy and Service Mesh
Cloud-Native Application Debugging with Envoy and Service MeshCloud-Native Application Debugging with Envoy and Service Mesh
Cloud-Native Application Debugging with Envoy and Service Mesh
 
NATS Connector Framework - Boulder Meetup
NATS Connector Framework - Boulder MeetupNATS Connector Framework - Boulder Meetup
NATS Connector Framework - Boulder Meetup
 
DevDay: Creating an Awesome Developer Experience for Corda, Web3 Labs
DevDay: Creating an Awesome Developer Experience for Corda, Web3 LabsDevDay: Creating an Awesome Developer Experience for Corda, Web3 Labs
DevDay: Creating an Awesome Developer Experience for Corda, Web3 Labs
 

Similaire à Matrix, The Year To Date, Ben Parsons, TADSummit 2018

Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!
All Things Open
 

Similaire à Matrix, The Year To Date, Ben Parsons, TADSummit 2018 (20)

Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!
 
Dot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentalsDot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentals
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
 
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20....Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewbox
 
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
 
Open Source Cyber Weaponry
Open Source Cyber WeaponryOpen Source Cyber Weaponry
Open Source Cyber Weaponry
 
Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyArchitectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and Consistently
 
Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyArchitectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and Consistently
 
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
Kafka 0.8.0 Presentation to Atlanta Java User's Group March 2013
 
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
 
An Open and Collaborative Ecosystem for IoT
An Open and Collaborative Ecosystem for IoTAn Open and Collaborative Ecosystem for IoT
An Open and Collaborative Ecosystem for IoT
 
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
 
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoTZephyr: Creating a Best-of-Breed, Secure RTOS for IoT
Zephyr: Creating a Best-of-Breed, Secure RTOS for IoT
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 
Rakuten Ichiba_Rakuten Technology Conference 2016
Rakuten Ichiba_Rakuten Technology Conference 2016Rakuten Ichiba_Rakuten Technology Conference 2016
Rakuten Ichiba_Rakuten Technology Conference 2016
 
Cincom Roadmap ESUG2014
Cincom Roadmap ESUG2014Cincom Roadmap ESUG2014
Cincom Roadmap ESUG2014
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 

Plus de Alan Quayle

Plus de Alan Quayle (20)

What is a vCon?
What is a vCon?What is a vCon?
What is a vCon?
 
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
 
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
 
What makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias GoebelWhat makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias Goebel
 
eSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João CasaleSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João Casal
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin Sime
 
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
 
Programmable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas GranigProgrammable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas Granig
 
How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...
 
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel BourgoisLatest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
 
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
 
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
 
Open Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan QuayleOpen Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan Quayle
 
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei IancuOpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
 
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe LeitaoTADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
 
What happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan QuayleWhat happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan Quayle
 
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike BromwichStacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
 
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
 
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João CamarateFounding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
 
How to bring down your own RTC platform. Sandro Gauci
How to bring down your own RTC platform. Sandro GauciHow to bring down your own RTC platform. Sandro Gauci
How to bring down your own RTC platform. Sandro Gauci
 

Dernier

Dernier (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Matrix, The Year To Date, Ben Parsons, TADSummit 2018

  • 1. What is it? What’s changed lately? What’s next?
 
 @benpa:matrix.org
 benp@matrix.org
 @matrixdotorg 1
  • 3. What is Matrix? Matrix is an open standard for interoperable, decentralised, real-time communication over the Internet. "3
  • 4. What is Matrix? Matrix provides a standard HTTP API for publishing and subscribing to real-time data in specified channels… "4
  • 5. What is Matrix? …which means it can be used to power IM, VoIP/WebRTC signalling, IoT communication… "5
  • 6. What is Matrix? … and anything else that can be expressed as JSON and needs to be transmitted in real-time over HTTP. "6
  • 10. No single party owns your conversations.
 
 Conversations are shared over all participants. "10
  • 11. End to End Crypto with Olm and Megolm • Without end-to-end encryption, Matrix’s replicated conversation history is a privacy problem. • ➔ Two years spent building decentralised E2E crypto into the heart of Matrix. "11
  • 12. Security Assessment • libolm 1.3.0 assessed by NCC Group in Sept 2016 • Findings released to the public!
 https://www.nccgroup.trust/us/our-research/matrix-olm- cryptographic-review • Olm: 2x low risk finding, 1x informational • Megolm: 1x high, 1x medium, 4x low risk. • All findings fixed in libolm or the Matrix Client SDKs. • No issues found in libolm since the audit! "12
  • 13. • Turning it on by default! • Improved UX for managing device trust • Cross-signing device keys • Better device verification • Better push notification UX for E2E rooms • Matrix daemon support • Negotiating E2E with legacy clients "13 Olm: What’s next?
  • 15. Matrix Open Source Ecosystem The Matrix Specification (Client/Server API) client-sideserver-side Other Servers: Ruma (Rust),
 Jeon (Java)… Synapse
 (1st gen Matrix Server) Application Services and Bridges Other Clients: …and many many more Matrix iOS Console MatrixKit (iOS) matrix-ios-sdk Matrix Web Console matrix-js-sdk Matrix Android Console matrix-android-sdk Dendrite
 (2nd gen Server) Other Services: Bridges, Bots, Integs… Nheko! (Qt/C++) Quaternion (Qt/C++) gomuksThunderbird Seaglass (macOS)Fractal (Gtk+/Rust) matrix-react-sdk
  • 16. Clients • Clients available for every platform, with far more available this year • Many client-side SDKs: • Official: JS, React, iOS, Android • Semi-official: Python, Perl5, Go • Community: Erlang, Java, Scala, Ruby, Perl6, Lisp, Elixir, Haskell, Rust… "16
  • 17. Home servers • Synapse: reference Matrix home server from the core team. • Huge codebase in Python/Twisted. • Some major perf and maintainability challenges… • … though lots of perf gains lately • Dendrite: next-generation, work in progress HS from the core team • ~30K lines of Golang • Received love this summer from interns and GSOC (more later) • Other home servers from the community using Rust, Java TypeScript and more "17
  • 18. More home server implementation? With the release of r0, we expect to see an increase in home server project activity. "18
  • 19. The Matrix APIs • Client-Server API • Server-Server API • Application Service API • Identity Server API
  • 20. The Client-Server API To send a message: curl -XPOST -d '{"msgtype":"m.text", "body":"hello"}' "https:// alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ID/send/ m.room.message?access_token=ACCESS_TOKEN" { "event_id": "YUwRidLecu" } "20
  • 21. To control a Hue light: curl -XPOST –d '{ "room": "1", "light": 2, "brightness": 0.5, }' "https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ID/send/ org.matrix.midi?access_token=ACCESS_TOKEN" { "event_id": “ORzcZn2” } The Client-Server API "21
  • 22. Server-Sever API • Synchronises messages and room state between servers, in real-time • Can retrieve historic messages from each other • Query profile and presence information about users on each other's servers "22 Application Services API • Have privileged access to the server • Can subscribe to server traffic to provide custom application logic • They can masquerade as 'virtual users'.
  • 24. Bridges • IRC • Discord • Telegram • Slack • SMS "24 • Gitter • RocketChat • Email • Mastodon • …more
  • 28. Matrix to IOT… Janus WebRTC Gateway (from MeetEcho) Parrot Bebop Drone
  • 31. Client Ecosystem explosion There were a lot of clients 12 months ago, but now there is a genuine choice of clients for day-to-day use Not all of these were first released in the last year, but still, an “explosion” of work and client development is fair to claim! "31
  • 32. Nheko 32 • Qt • Supports E2E • Looks great
  • 33. Quaternion • Qt, looks like a Qt app • Creator is also creator of libQMatrixClient, which supports many projects 33
  • 35. Seaglass • Native macOS app • supports E2E • looks great 35
  • 36. Fractal • Gnome/GTK • Rust • rapidly evolving • strong community • Adding E2E soon, at the Rust-level, so will be client agnostic • Supported by Purism for librem5 device 36
  • 38. Client Ecosystem explosion • Nheko - Qt, supports E2E, looks great • Quaternion - Qt, looks like a Qt app • Creator is also creator of libQMatrix, which supports many projects • Spectral - Qt, looks great • Seaglass - Native macOS app, supports E2E, looks great • Fractal - Gnome/GTK, Rust, rapidly evolving, strong community • Gomuks - TUI, written in Go "38
  • 39. Spec Progress • A known bottleneck • Permanent Core Team member focused on driving this forwards • So close…….. • Client Server API is ready • Application Service (bots & bridges) API is ready "39
  • 40. "40
  • 41. Synapse improvements • Reference implementation and 99.999% of active home servers • Regular incremental performance improvements • Regular security improvements • Noticeable improvement in responsiveness on matrix.org • It’s now Python 3 • Installation streamlined and docs improved (thanks Robin) "41
  • 42. Google Summer of Code • Two students working with the core team • One made huge progress adding E2E bindings for the Python SDK • Another helped push Dendrite toward feature-completeness • Gnome Project had two students working on Fractal (Gtk Client) • Assisting with redesign and implementation of fundamental features like room config screen "42
  • 43. DINSIC (French Government usage) • Direction interministérielle du numérique et du système d'information et de communication de l'État • Deploying a huge private federation of Matrix homeservers spanning the whole government • Decentralised organisations (such as govt and academia) appreciate the decentralised design of matrix, they can have separate servers linked • they can have different settings for many things, event security - eg. AV severity "43
  • 44. DINSIC (French Government usage) • Developed a fork of Riot for use as their official secure communications client • Now ready on iOS, Android, Web • Now live with 15 servers, one per ministry • Security Audit (with involvement from ANSSI, Intelligence Service) happening today! • We expect an increase in rollout speed after this "44
  • 45. Lazy Loading • Specifically Lazy Loading of member list for rooms • Can be a bottleneck for client performance but can be solved by the server. • Current implementation suggests an initial RAM usage reduction of around 6x. "45
  • 46. The Matrix.org Foundation • A UK non-profit company • Guardians (five total, including some not from the Matrix community) • In progress: • Property being transferred • Articles of Association "46
  • 47. New users • TADHack! • 1946 total users on tadhack.vector.im • Status.im using for their internal comms with a custom Riot theme "47
  • 49. Modular.im • Hosted Homeservers: paid hosting from the creators of Matrix • Matrix as a SaaS (“MaaS”? “MaaSaaS”?) • web3.foundation using it internally • Other adopters not yet announced… soon! "49
  • 50. Modular.im: Next steps • Smaller servers for individuals • Custom DNS • Migration path for existing home servers "50
  • 52. Spec r0 release • Stable release of Matrix Spec • We are so close! • Client Server API is ready • Application Service (bots & bridges) API is ready • Federation API expected this year • https://github.com/matrix-org/matrix-doc/projects/1 "52
  • 53. Riot Redesign • Current Riot is not always attractive • The colours are not …. right • Messaging software ecosystem is mature, there are things which users are known to like (…Slack) • Riot will be a glossy client, with other clients available to taste "53
  • 54. "54
  • 55. "55
  • 56. State Resolution: Reloaded • The state of a room at an event is built up and updated by sending state events into the room. • View of the state of the room should be consistent across all servers. • Problem: room graph forks and then merges again (e.g. if two servers send events at the same time). State has to be resolved from the state of the two branches: this is called the state resolution algorithm. • Entirely new consensus algorithm • Ideal algorithm should not allow malicious servers to avoid moderation action by forking and merging the room graph "56
  • 57. Cross-signing • Keep security, improve convenience "57
  • 58. e2e in new clients • Currently in Riot, Nheko, Seaglass • Needs more • We should aim to enable e2e on private rooms by default • Big progress happening in Fractal, will be client-agnostic "58
  • 59. What’s Next Summary • Spec r0 release • Riot Redesign • E2E in more clients • State Res reloaded • Cross-signing "59
  • 61. What’s after that? • Dendrite, with other home servers filling the ecosystem • Aggregations • Emoji Reactions • Editable messages • Threading - future idea • Decentralised identity • matrix.org Foundation "61
  • 62. Thank You! Swag is available!
 
 @benpa:matrix.org
 benp@matrix.org
 @matrixdotorg