Efim Poberezkin
8a4bced569
decrease initial delay for HELLO retries on online activation ( #174 )
...
* decrease initial delay for HELLO retries on online activation
* move retry interval to config
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2021-08-01 13:51:40 +01:00
Nikita Poberezkin
8ac4b77777
create cfg dir before server initialization ( #173 )
2021-07-25 20:29:47 +01:00
Evgeny Poberezkin
30c36b488a
commit simplexmq.cabal to remove stack DEPRECATED warning ( #172 )
2021-07-25 20:27:09 +01:00
Evgeny Poberezkin
10fcb9771a
use explicit immediate transactions in all functions that change db ( #170 )
2021-07-20 21:21:30 +01:00
Nikita Poberezkin
65782d7ef6
add digital ocean deployment instruction ( #168 )
...
* add digital ocean deployment instruction
* fix instruction
* fix image link and remove ssh instruction link
2021-07-12 17:22:35 +01:00
Efim Poberezkin
5e380e1d47
add tests for establishing connection asynchronously; retrieve correct key for activation on restart ( #169 )
2021-07-10 20:02:48 +10:00
Efim Poberezkin
9f945492dd
fix markdown error in crypto rfc ( #167 )
2021-07-09 04:27:07 +10:00
Evgeny Poberezkin
8ba3e3e45a
remove connection ID parameter from agent functions ( #166 )
...
* remove connection ID parameter from agent functions
* remove unused extension
2021-07-03 20:18:37 +01:00
Efim Poberezkin
3d9ceff691
ask client for confirmation of sender; make establishment of connection asynchronous ( #163 )
...
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2021-07-04 04:48:24 +10:00
Evgeny Poberezkin
daad3315eb
upgrade stack resolver to lts-18.0 ( #165 )
...
* upgrade stack resolver to lts-18.0
* fix random package version
2021-06-30 10:35:50 +01:00
Evgeny Poberezkin
e4d9b481ec
refactor message meta to MsgMeta type ( #164 )
2021-06-30 10:29:45 +01:00
Evgeny Poberezkin
7af7272635
SQLiteStore connection pool ( #162 )
...
* SQLiteStore connection pool
* move SQLiteStore to agent env - single store instance is used for all clients
2021-06-25 18:17:11 +01:00
Evgeny Poberezkin
09c6adeabc
pass migration as parameter (to use in simplex-chat) ( #161 )
...
* pass migration as parameter (to use in simplex-chat)
* add connId parameter to create/joinConnection
2021-06-24 18:39:59 +01:00
Evgeny Poberezkin
d5f324cb5c
SMP agent: functional API ( #159 )
...
* SMP agent: functional API (WIP)
* functional API for SMP agent, tests
* fix ICON message parameter
* use stateTVar
2021-06-13 11:11:44 +01:00
Evgeny Poberezkin
bf5561c89c
remove entities, remove broadcasts ( #158 )
2021-06-12 20:01:36 +01:00
Evgeny Poberezkin
ab89963f45
introduction protocol ( #156 )
...
* commands to support introduction
* agent messages / envelopes to support introductions
* introductions and invitations table; insert record with random unique ID
* store class methods and types for introductions
* process INTRO and ACPT commands for connection introductions
* fix tests: add MonadFail constraint, remove OK response to JOIN
* process agent messages for introductions
* ICON notification when introduction is completed
* replace multiway if with case
* correction
* support random connection IDs
* save additional connection fields, refactor create connection funcs
* refactor
* refactor
* test duplex connection with random IDs
* store methods for introductions
* test introduction
* fix parsing of CON agent message
* test introduction with random connection IDs
* broadcast with random connection and broadcast IDs
* clean up sql
2021-06-11 21:33:13 +01:00
Evgeny Poberezkin
5ebb546d58
remove digitalocean deployment until ready ( #157 )
2021-06-06 11:20:06 +01:00
Nikita Poberezkin
46c3589604
add DigitalOcean SMP server Droplet recipe, extend readme ( #150 )
2021-06-01 23:10:58 +03:00
Evgeny Poberezkin
dffa7a6100
groups agent protocol ( #142 )
...
* groups agent protocol
* groups to chat protocol
* update groups doc / diagram
* group protocol commands
* update group protocol
* count messages for different group operations
* broadcast and introduction as components for group protocol
* list connections in the broadcast
* protocol commands overview - using polymorphic commands
* another version of group protocol based on "broadcast" and "introduction" concepts
* update number of messages needed to establish connection
* corrections to broadcast and introduction protocols
* corrections in groups protocol
* corrections
2021-06-01 18:20:12 +01:00
Evgeny Poberezkin
bc780343df
broadcast commands ( #154 )
...
* broadcast commands (WIP)
* broadcasts: store and commands implementation
* test broadcast
* broadcast test
* rename migration, handle SEBadConnType errors
* query semicolons
2021-06-01 18:11:16 +01:00
Evgeny Poberezkin
84ce001598
database migrations ( #153 )
...
* database migrations
* fix: reverse order of down migrations
* use positional parameters in queries
* simplify migrations
* typo
* rename SchemaMigration to Migration
* move store initialization to IO monad
2021-05-31 16:38:35 +01:00
Evgeny Poberezkin
92bd8ef335
agent entity types ( #148 )
...
* agent entity types (WIP - fails)
* agent entities (tests pass, TODO - reduce boilerplate)
* simplify test patters
* simplify test patterns 2
* refactor testEquality for ACommand
* stricter entity parsing and correct serialization, updated tests
* fix check of entity ID
* remove unused instance Eq (Entity t)
2021-05-29 13:01:17 +01:00
Evgeny Poberezkin
85535de7d8
update script link ( #152 )
...
* update script link
* linode logo
* update logo image
2021-05-28 19:28:36 +01:00
Nikita Poberezkin
7bbc4e4109
add linode deployment recipe, modify smp-server-linode script ( #151 )
2021-05-28 21:00:24 +03:00
Nikita Poberezkin
248aa234d1
turn off smp server websockets support in linode script ( #149 )
2021-05-27 11:48:30 +03:00
Nikita Poberezkin
26a0665d81
SMP server linode StackScript ( #147 )
2021-05-24 22:28:10 +03:00
Nikita Poberezkin
dea1845908
0.3.2 ( #146 )
v0.3.2
2021-05-23 14:19:19 +03:00
Evgeny Poberezkin
8ed3eb4581
upgrade ghc to 8.10.4, stack resolver to 17.12 ( #145 )
2021-05-23 12:00:18 +01:00
Evgeny Poberezkin
5962c1bb3e
SMP server CLI commands ( #144 )
...
SMP server CLI commands
2021-05-23 13:10:00 +03:00
Evgeny Poberezkin
5b39f51203
websockets transport ( #139 )
...
* example websockets server
* example of ws client
* type class TConnection for generic TCP/WebSockets implementation
* support WebSockets transport
* rename TConnection methods
* revert runClient to not need transport arg
* pass the list of ports and transports via SMP server config
* remove TypeApplications
* s/Transport/TProxy/, s/TConnection/Transport/
* fix server with multiple transports, make SMP client use WS transport with port 80 (TODO fallback to WS)
2021-05-17 22:33:12 +01:00
Nikita Poberezkin
63532c8b45
simplex-messaging.md reformulation of key pairs handling part ( #141 )
2021-05-15 16:04:51 +01:00
Evgeny Poberezkin
44bec887fe
0.3.1 ( #135 )
...
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
v0.3.1
2021-05-10 15:14:06 +04:00
Efim Poberezkin
8bd42035aa
reorganize sqlite store test suite ( #138 )
2021-05-10 15:10:32 +04:00
Efim Poberezkin
f7f419224f
reduce transaction retry back-off factor to 1.125 ( #137 )
2021-05-10 14:24:08 +04:00
Evgeny Poberezkin
8ac47b9bbf
reduce transaction retry back-off factor to 1.25 (31 retries) ( #136 )
2021-05-09 12:49:52 +01:00
Evgeny Poberezkin
305bc5cb0a
update package categories ( #134 )
2021-05-09 11:24:40 +01:00
Efim Poberezkin
fa5a8cb5cd
agent: change sqlite busy retry handling; set journal_mode = WAL ( #132 )
...
* agent: change sqlite busy retry handling; set journal_mode = WAL
* fix accumulation
* add exponential back-off (*1.5) to transaction retries
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2021-05-09 10:24:02 +01:00
Evgeny Poberezkin
5d59e4b2bd
package and module docs, remove Simplex.Markdown (moved to simplex-chat), rename Agent.Transmission to Agent.Protocol ( #133 )
...
* package and module docs, remove Simplex.Markdown (moved to simplex-chat), rename Agent.Transmission to Agent.Protocol
* move errors.md to haddock comments, Transport docs
* add CHANGELOG.md, add missing package versions
* changelog, copyright
* docs for Simplex.Messaging.Crypto
* consistent punctuation
* use absolute URLs in readme
* correction
2021-05-09 09:36:08 +01:00
Efim Poberezkin
ad87442811
sqlite busy stress test ( #131 )
...
* sqlite busy stress test
* refactor withStore2
* refactor withStore2
* pragmas
* swith to IMMEDIATE sqlite transactions and add retry on ErrorBusy
* refactor
* increase timeout, print errors and results
* remove logging errors/results
Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com >
2021-05-08 16:30:40 +01:00
Evgeny Poberezkin
7aacee405e
agent: send CON to user when the 1st party responds HELLO; fix REPLY vulnerability ( #130 )
...
* agent: send CON to user when the 1st party responds HELLO; fix REPLY vulnerability
* test for getRcvConn
* add commented OK response to JOIN command
* store: use Only newtype to select one field
2021-05-07 06:57:53 +01:00
Evgeny Poberezkin
4b9ebbbab2
move SMP server from agent commands NEW/JOIN to agent config ( #129 )
...
* move SMP server from agent commands NEW/JOIN to agent config
* fix SMPServer parser
* update agent protocol - server management
* enable agent test
* agent test with 2 servers
* create reply queue on the configured server
* choose random server
* swap bind
2021-05-06 18:53:34 +01:00
Efim Poberezkin
f09c77cd31
docs: correct agent protocol abnf ( #128 )
2021-05-04 21:48:54 +04:00
Evgeny Poberezkin
2b0950e78e
0.3.0
v0.3.0
2021-05-04 08:38:52 +01:00
Evgeny Poberezkin
aff2d73e45
build SMP server on tags ( #127 )
...
* build SMP server on tags
* stack test -> stack build --test
2021-05-04 08:37:48 +01:00
Evgeny Poberezkin
377b166d8e
SimplexMQ readme, remove chat client ( #125 )
...
* SimplexMQ readme, remove chat client
* link to license
* add roadmap, corrections
* corrections
* strange dot -> colon
* corrections
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com >
2021-05-04 07:11:48 +01:00
Evgeny Poberezkin
1c7d7e5083
base64 encode keyhash in DB ( #126 )
2021-05-03 15:52:41 +01:00
Evgeny Poberezkin
772b38d154
simplify KeyHash type, store key hash in DB as binary ( #122 )
2021-05-03 12:38:31 +01:00
Evgeny Poberezkin
b517d793d8
only allow correct key and signature sizes, improve timing mitigation ( #121 )
2021-05-03 12:31:23 +01:00
Evgeny Poberezkin
76e81e1cf0
fix duplex connection diagram link
2021-05-03 10:13:55 +01:00
Evgeny Poberezkin
4ec548f8b8
fix diagram links
2021-05-03 10:12:33 +01:00