Masterthesis
This commit is contained in:
parent
473dc4a495
commit
4479fcf7f4
7 changed files with 28 additions and 57 deletions
|
@ -1,11 +0,0 @@
|
||||||
Iteration,Start,End
|
|
||||||
1,1602853607,1602853727
|
|
||||||
2,1602853727,1602853847
|
|
||||||
3,1602853847,1602853967
|
|
||||||
4,1602853967,1602854087
|
|
||||||
5,1602854087,1602854207
|
|
||||||
6,1602854207,1602854327
|
|
||||||
7,1602854327,1602854447
|
|
||||||
8,1602854447,1602854567
|
|
||||||
9,1602854567,1602854687
|
|
||||||
10,1602854687,1602854807
|
|
|
|
@ -2,8 +2,6 @@ package config
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/lestrrat-go/backoff"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var ServerName string = "Hoernschen's Matrix Server"
|
var ServerName string = "Hoernschen's Matrix Server"
|
||||||
|
@ -25,8 +23,6 @@ var Signing bool
|
||||||
var Encryption bool
|
var Encryption bool
|
||||||
var HttpString string
|
var HttpString string
|
||||||
|
|
||||||
var BackoffPolicy *backoff.Exponential
|
|
||||||
|
|
||||||
func SetDefaultParams() {
|
func SetDefaultParams() {
|
||||||
Packetloss = 0.0
|
Packetloss = 0.0
|
||||||
UnavailableTill = time.Now().Unix()
|
UnavailableTill = time.Now().Unix()
|
||||||
|
|
|
@ -2,7 +2,6 @@ package event
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
@ -17,9 +16,8 @@ import (
|
||||||
"git.nutfactory.org/hoernschen/Matrix/entities/user"
|
"git.nutfactory.org/hoernschen/Matrix/entities/user"
|
||||||
"git.nutfactory.org/hoernschen/Matrix/utils"
|
"git.nutfactory.org/hoernschen/Matrix/utils"
|
||||||
|
|
||||||
//"github.com/cenkalti/backoff/v4"
|
"github.com/cenkalti/backoff/v4"
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
"github.com/lestrrat-go/backoff"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func New(
|
func New(
|
||||||
|
@ -178,7 +176,7 @@ func SendMessageHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
for _, server := range servers {
|
for _, server := range servers {
|
||||||
if server != config.Homeserver {
|
if server != config.Homeserver {
|
||||||
log.Printf("Send Transaction to %s", server)
|
log.Printf("Send Transaction to %s", server)
|
||||||
/*
|
|
||||||
operation := func() error {
|
operation := func() error {
|
||||||
return SendTransaction(transaction, server, config.HttpString, config.AuthentificationCheck)
|
return SendTransaction(transaction, server, config.HttpString, config.AuthentificationCheck)
|
||||||
}
|
}
|
||||||
|
@ -186,8 +184,7 @@ func SendMessageHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
log.Printf("Error Sending Transaction, retrying in %ss: %s", duration/1000000000, err)
|
log.Printf("Error Sending Transaction, retrying in %ss: %s", duration/1000000000, err)
|
||||||
}
|
}
|
||||||
backoff.RetryNotify(operation, backoff.NewExponentialBackOff(), notify)
|
backoff.RetryNotify(operation, backoff.NewExponentialBackOff(), notify)
|
||||||
*/
|
|
||||||
go retryTransaction(transaction, server, config.HttpString, config.AuthentificationCheck)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
response := createEventResponse{
|
response := createEventResponse{
|
||||||
|
@ -199,20 +196,6 @@ func SendMessageHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func retryTransaction(transactionToSend *Transaction, server string, httpString string, authCheck bool) (err error) {
|
|
||||||
b, cancel := config.BackoffPolicy.Start(context.Background())
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
for backoff.Continue(b) {
|
|
||||||
err := SendTransaction(transactionToSend, server, httpString, authCheck)
|
|
||||||
if err == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
err = errors.New("Not able to send transaction")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func CreateStateEventHandler(w http.ResponseWriter, r *http.Request) {
|
func CreateStateEventHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
w.Header().Set("Content-Type", "application/json; charset=UTF-8")
|
w.Header().Set("Content-Type", "application/json; charset=UTF-8")
|
||||||
errResponse := utils.CheckRequest(r)
|
errResponse := utils.CheckRequest(r)
|
||||||
|
@ -294,14 +277,13 @@ func CreateStateEventHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, server := range servers {
|
for _, server := range servers {
|
||||||
/*operation := func() error {
|
operation := func() error {
|
||||||
return SendTransaction(transaction, server, config.HttpString, config.AuthentificationCheck)
|
return SendTransaction(transaction, server, config.HttpString, config.AuthentificationCheck)
|
||||||
}
|
}
|
||||||
notify := func(err error, duration time.Duration) {
|
notify := func(err error, duration time.Duration) {
|
||||||
log.Printf("Error Sending Transaction, retrying in %ss: %s", duration/1000000000, err)
|
log.Printf("Error Sending Transaction, retrying in %ss: %s", duration/1000000000, err)
|
||||||
}
|
}
|
||||||
go backoff.RetryNotify(operation, backoff.NewExponentialBackOff(), notify)*/
|
go backoff.RetryNotify(operation, backoff.NewExponentialBackOff(), notify)
|
||||||
go retryTransaction(transaction, server, config.HttpString, config.AuthentificationCheck)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
response := createEventResponse{
|
response := createEventResponse{
|
||||||
|
|
1
go.mod
1
go.mod
|
@ -5,6 +5,5 @@ go 1.14
|
||||||
require (
|
require (
|
||||||
github.com/cenkalti/backoff/v4 v4.1.0
|
github.com/cenkalti/backoff/v4 v4.1.0
|
||||||
github.com/gorilla/mux v1.8.0
|
github.com/gorilla/mux v1.8.0
|
||||||
github.com/lestrrat-go/backoff v1.0.0
|
|
||||||
github.com/mattn/go-sqlite3 v1.14.4
|
github.com/mattn/go-sqlite3 v1.14.4
|
||||||
)
|
)
|
||||||
|
|
7
main.go
7
main.go
|
@ -5,7 +5,6 @@ import (
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
|
||||||
|
|
||||||
"git.nutfactory.org/hoernschen/Matrix/config"
|
"git.nutfactory.org/hoernschen/Matrix/config"
|
||||||
"git.nutfactory.org/hoernschen/Matrix/entities/device"
|
"git.nutfactory.org/hoernschen/Matrix/entities/device"
|
||||||
|
@ -15,7 +14,6 @@ import (
|
||||||
"git.nutfactory.org/hoernschen/Matrix/entities/user"
|
"git.nutfactory.org/hoernschen/Matrix/entities/user"
|
||||||
"git.nutfactory.org/hoernschen/Matrix/utils/database"
|
"git.nutfactory.org/hoernschen/Matrix/utils/database"
|
||||||
"git.nutfactory.org/hoernschen/Matrix/utils/router"
|
"git.nutfactory.org/hoernschen/Matrix/utils/router"
|
||||||
"github.com/lestrrat-go/backoff"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var keyPath = "./ssl.key"
|
var keyPath = "./ssl.key"
|
||||||
|
@ -72,11 +70,6 @@ func main() {
|
||||||
config.VerifyKeys = make(map[string]map[string][]byte)
|
config.VerifyKeys = make(map[string]map[string][]byte)
|
||||||
os.Remove("sqlite.db")
|
os.Remove("sqlite.db")
|
||||||
|
|
||||||
config.BackoffPolicy = backoff.NewExponential(
|
|
||||||
backoff.WithInterval(500*time.Millisecond),
|
|
||||||
backoff.WithMaxRetries(16),
|
|
||||||
)
|
|
||||||
|
|
||||||
if err := database.InitDB("sqlite.db"); err != nil {
|
if err := database.InitDB("sqlite.db"); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
BIN
sqlite.db
BIN
sqlite.db
Binary file not shown.
|
@ -22,7 +22,7 @@ import (
|
||||||
"git.nutfactory.org/hoernschen/Matrix/utils"
|
"git.nutfactory.org/hoernschen/Matrix/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
var BaseLineTest = true
|
var BaseLineTest = false
|
||||||
|
|
||||||
var systemParamsIndex = 0
|
var systemParamsIndex = 0
|
||||||
|
|
||||||
|
@ -47,8 +47,6 @@ var users = []map[string][]string{
|
||||||
"user2",
|
"user2",
|
||||||
"user3",
|
"user3",
|
||||||
"user4",
|
"user4",
|
||||||
"user5",
|
|
||||||
"user6",
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
map[string][]string{
|
map[string][]string{
|
||||||
|
@ -85,20 +83,34 @@ var users = []map[string][]string{
|
||||||
"user4",
|
"user4",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
map[string][]string{
|
||||||
|
"localhost": []string{
|
||||||
|
"user1",
|
||||||
|
"user2",
|
||||||
|
"user3",
|
||||||
|
"user4",
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
var servers = []string{
|
var servers = []string{
|
||||||
"143.93.38.207",
|
"143.93.38.207",
|
||||||
"143.93.38.208",
|
"143.93.38.208",
|
||||||
"143.93.38.209",
|
"143.93.38.209",
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
var servers = []string{
|
||||||
|
"localhost",
|
||||||
|
}
|
||||||
|
|
||||||
var systemParams = []SystemParams{
|
var systemParams = []SystemParams{
|
||||||
SystemParams{
|
SystemParams{
|
||||||
Id: "111111111",
|
Id: "111111111",
|
||||||
BytesToSend: 280,
|
BytesToSend: 280,
|
||||||
MessagesPerSecond: 1.0,
|
MessagesPerSecond: 1.0,
|
||||||
Distribution: users[1],
|
Distribution: users[3],
|
||||||
Packetloss: 1,
|
Packetloss: 1,
|
||||||
MinutesNotAvailable: 0,
|
MinutesNotAvailable: 0,
|
||||||
Consensus: true,
|
Consensus: true,
|
||||||
|
|
Loading…
Reference in a new issue