Skip to content
Open
39 changes: 39 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Build and Test

on: [push, pull_request]

jobs:

build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.18

- name: Build
run: |
sudo apt install -y netcat
go install

- name: Test SocksTCP
working-directory: ./shTests/SocksTCP
run: sh ./runAllSocksTests.sh

- name: Test StunUDP
if: always()
working-directory: ./shTests/StunUDP
run: sh ./runAllStunUDPTests.sh

- name: Test TransparentTCP
if: always()
working-directory: ./shTests/TransparentTCP
run: sh ./runAllTCPTests.sh

- name: Test TransparentUDP
if: always()
working-directory: ./shTests/TransparentUDP
run: sh ./runAllUDPTests.sh
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ require (
github.com/deckarep/golang-set v1.8.0 // indirect
github.com/kataras/pio v0.0.10 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/things-go/go-socks5 v0.0.2 // indirect
golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f // indirect
golang.org/x/sys v0.0.0-20220429233432-b5fbb4746d32 // indirect
)
3 changes: 3 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/things-go/go-socks5 v0.0.2 h1:dFi5iZ/LqgHRTQ6n3XlipTLDWHAQsejvJ300bH2VFWo=
github.com/things-go/go-socks5 v0.0.2/go.mod h1:dhnDTBbIg31cbJdROP4/Zz6Iw7JPEpiMvOl2LdHSSjE=
github.com/willscott/goturn v0.0.0-20170802220503-19f41278d0c9 h1:yKStnJf2/R4IETsrVlAGBxjBxQ3JgVGnjV3gDlc6tAs=
github.com/willscott/goturn v0.0.0-20170802220503-19f41278d0c9/go.mod h1:PfwRjodCaQXOsHnh2DeVaXqCFCIrbn5WLj1+A5bQkD4=
golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
Expand All @@ -49,6 +51,7 @@ golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f h1:OeJjE6G4dgCY4PIXvIRQbE
golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA=
golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
Expand Down
8 changes: 7 additions & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ const (
transparentTCP
transparentUDP
stunUDP
dynamic
)

func main() {
Expand Down Expand Up @@ -100,7 +101,7 @@ func main() {
targetPort := flag.String("targetport", "", "Specify transport server destination address host")
proxyListenHost := flag.String("proxylistenhost", "", "Specify the bind address for the local SOCKS server host provided by the client")
proxyListenPort := flag.String("proxylistenport", "", "Specify the bind address for the local SOCKS server port provided by the client")
modeName := flag.String("mode", "", "Specify which mode is being used: transparent-TCP, transparent-UDP, socks5, or STUN")
modeName := flag.String("mode", "", "Specify which mode is being used: transparent-TCP, transparent-UDP, socks5, STUN or dynamic")

// PT 2.1 specification, 3.3.1.2. Pluggable PT Client Configuration Parameters
proxy := flag.String("proxy", "", "Specify an HTTP or SOCKS4a proxy that the PT needs to use to reach the Internet")
Expand Down Expand Up @@ -329,6 +330,9 @@ func main() {
case stunUDP:
ptServerInfo := getServerInfo(bindAddr, options, transportsList, target, extorport, authcookie)
launched = stun_udp.ServerSetup(ptServerInfo, stateDir, *options)
case dynamic:
ptServerInfo := getServerInfo(bindAddr, options, transportsList, target, extorport, authcookie)
launched = transparent_tcp.ServerProxyServe(ptServerInfo, stateDir, *options)
default:
golog.Errorf("unsupported mode %d", mode)
}
Expand Down Expand Up @@ -361,6 +365,8 @@ func determineMode(mode string, isTransparent bool, isUDP bool) (int, error) {
return transparentUDP, nil
case "STUN":
return stunUDP, nil
case "dynamic":
return dynamic, nil
default:
return -1, errors.New("invalid mode")
}
Expand Down
48 changes: 48 additions & 0 deletions modes/tcp_common.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,13 @@ import (
"net/url"
"os"

log2 "log"

commonLog "github.com/OperatorFoundation/shapeshifter-dispatcher/common/log"
"github.com/OperatorFoundation/shapeshifter-dispatcher/common/pt_extras"
pt "github.com/OperatorFoundation/shapeshifter-ipc/v3"
"github.com/kataras/golog"
"github.com/things-go/go-socks5"

"github.com/OperatorFoundation/shapeshifter-dispatcher/common/log"
)
Expand Down Expand Up @@ -114,6 +117,51 @@ func ServerSetupTCP(ptServerInfo pt.ServerInfo, stateDir string, options string,
return
}

// "Dynamic Port Forwarding" mode, the server is a socks5 server.
func ServerSetupDynamic(ptServerInfo pt.ServerInfo, stateDir string, options string, serverHandler ServerHandler) (launched bool) {
// Launch each of the server listeners.
for _, bindaddr := range ptServerInfo.Bindaddrs {
name := bindaddr.MethodName

// Deal with arguments.
listen, parseError := pt_extras.ArgsToListener(name, stateDir, options)
if parseError != nil {
return false
}

go func() {
for {
transportLn, LnError := listen(bindaddr.Addr.String())
if LnError != nil {
continue
}

print(name)
print(" listening on ")
println(bindaddr.Addr.String())

log.Infof("%s - registered listener: %s", name, log.ElideAddr(bindaddr.Addr.String()))

// Create a SOCKS5 server
server := socks5.NewServer(
socks5.WithLogger(socks5.NewLogger(log2.New(os.Stdout, "socks5: ", log2.LstdFlags))),
)

// Create SOCKS5 proxy
transportLnErr := server.Serve(transportLn)
if transportLnErr != nil {
fmt.Fprintf(os.Stderr, "Listener close error: %s", transportLnErr.Error())
log.Errorf("Listener close error: %s", transportLnErr.Error())
}
}
}()

launched = true
}

return
}

func CopyLoop(client net.Conn, server net.Conn) error {
if server == nil {
println("--> Copy loop has a nil server connection.")
Expand Down
9 changes: 7 additions & 2 deletions modes/transparent_tcp/transparent_tcp.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,15 @@ package transparent_tcp

import (
"fmt"
"net"
"net/url"

commonLog "github.com/OperatorFoundation/shapeshifter-dispatcher/common/log"
"github.com/OperatorFoundation/shapeshifter-dispatcher/common/pt_extras"
"github.com/OperatorFoundation/shapeshifter-dispatcher/modes"
pt "github.com/OperatorFoundation/shapeshifter-ipc/v3"
"github.com/kataras/golog"
"golang.org/x/net/proxy"
"net"
"net/url"
)

func ClientSetup(socksAddr string, ptClientProxy *url.URL, names []string, options string) (launched bool) {
Expand Down Expand Up @@ -109,6 +110,10 @@ func ServerSetup(ptServerInfo pt.ServerInfo, statedir string, options string) (l
return modes.ServerSetupTCP(ptServerInfo, statedir, options, serverHandler)
}

func ServerProxyServe(ptServerInfo pt.ServerInfo, statedir string, options string) (launched bool) {
return modes.ServerSetupDynamic(ptServerInfo, statedir, options, serverHandler)
}

func serverHandler(name string, remote net.Conn, info *pt.ServerInfo) {
// Connect to the orport.
orConn, err := pt.DialOr(info, remote.RemoteAddr().String(), name)
Expand Down
5 changes: 4 additions & 1 deletion reduceMicroformats.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ package main

import (
"errors"

"github.com/kataras/golog"
)

Expand Down Expand Up @@ -158,10 +159,12 @@ func validateMode(mode *string, transparent *bool, udp *bool) error {
return nil
case "STUN":
return nil
case "dynamic":
return nil
default:
return errors.New("invalid mode")
}
}

return nil
}
}
10 changes: 9 additions & 1 deletion shTests/SocksTCP/socks_TCP_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ import (
"encoding/binary"
"errors"
"fmt"
socks "github.com/OperatorFoundation/shapeshifter-dispatcher/common/socks5"
"io/ioutil"
"net"
"testing"
"time"

socks "github.com/OperatorFoundation/shapeshifter-dispatcher/common/socks5"
)

const (
Expand Down Expand Up @@ -64,6 +65,13 @@ func TestSocksTCPShadow(t *testing.T) {
}
}

func TestSocksTCPStarbridge(t *testing.T) {
negotiateError := negotiateSocks("../../ConfigFiles/StarbridgeClientConfig.json")
if negotiateError != nil {
t.Fail()
}
}

func negotiateSocks(jsonFile string) error {
dialConn, dialError := net.Dial("tcp", "127.0.0.1:1443")
if dialError != nil {
Expand Down
10 changes: 4 additions & 6 deletions shTests/SocksTCP/testSocksTCPOptimizerFirst.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
# An alternative way to run this test is to run each command in its own terminal. Each netcat instance can be used to type content which should appear in the other.
FILENAME=testSocksTCPOptimizerFirstOutput.txt

GOPATH=${GOPATH:-'$HOME/go'}

# Update and build code
go install

Expand All @@ -15,14 +13,14 @@ rm $FILENAME
nc -l 3333 >$FILENAME &

# Run the transport server
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr shadow-127.0.0.1:2222 -transports shadow -optionsFile ../../ConfigFiles/shadowServer.json -logLevel DEBUG -enableLogging &
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Starbridge-127.0.0.1:2223 -transports Starbridge -optionsFile ../../ConfigFiles/StarbridgeServerConfig.json -logLevel DEBUG -enableLogging &
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Replicant-127.0.0.1:2224 -transports Replicant -optionsFile ../../ConfigFiles/ReplicantServerConfigV3.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr shadow-127.0.0.1:2222 -transports shadow -optionsFile ../../ConfigFiles/shadowServer.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Starbridge-127.0.0.1:2223 -transports Starbridge -optionsFile ../../ConfigFiles/StarbridgeServerConfig.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Replicant-127.0.0.1:2224 -transports Replicant -optionsFile ../../ConfigFiles/ReplicantServerConfigV3.json -logLevel DEBUG -enableLogging &

sleep 5

# Run the transport client
"$GOPATH"/bin/shapeshifter-dispatcher -client -state state -transports Optimizer -proxylistenaddr 127.0.0.1:1443 -optionsFile ../../ConfigFiles/OptimizerFirst.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -client -state state -transports Optimizer -proxylistenaddr 127.0.0.1:1443 -optionsFile ../../ConfigFiles/OptimizerFirst.json -logLevel DEBUG -enableLogging &

sleep 1

Expand Down
10 changes: 4 additions & 6 deletions shTests/SocksTCP/testSocksTCPOptimizerMinimizeDialDuration.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
# An alternative way to run this test is to run each command in its own terminal. Each netcat instance can be used to type content which should appear in the other.
FILENAME=testSocksTCPOptimizerMinimizeDialDurationOutput.txt

GOPATH=${GOPATH:-'$HOME/go'}

# Update and build code
go install

Expand All @@ -15,14 +13,14 @@ rm $FILENAME
nc -l 3333 >$FILENAME &

# Run the transport server
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr shadow-127.0.0.1:2222 -transports shadow -optionsFile ../../ConfigFiles/shadowServer.json -logLevel DEBUG -enableLogging &
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Starbridge-127.0.0.1:2223 -transports Starbridge -optionsFile ../../ConfigFiles/StarbridgeServerConfig.json -logLevel DEBUG -enableLogging &
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Replicant-127.0.0.1:2224 -transports Replicant -optionsFile ../../ConfigFiles/ReplicantServerConfigV3.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr shadow-127.0.0.1:2222 -transports shadow -optionsFile ../../ConfigFiles/shadowServer.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Starbridge-127.0.0.1:2223 -transports Starbridge -optionsFile ../../ConfigFiles/StarbridgeServerConfig.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Replicant-127.0.0.1:2224 -transports Replicant -optionsFile ../../ConfigFiles/ReplicantServerConfigV3.json -logLevel DEBUG -enableLogging &

sleep 5

# Run the transport client
"$GOPATH"/bin/shapeshifter-dispatcher -client -state state -transports Optimizer -proxylistenaddr 127.0.0.1:1443 -optionsFile ../../ConfigFiles/OptimizerMinimizeDialDuration.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -client -state state -transports Optimizer -proxylistenaddr 127.0.0.1:1443 -optionsFile ../../ConfigFiles/OptimizerMinimizeDialDuration.json -logLevel DEBUG -enableLogging &

sleep 1

Expand Down
10 changes: 4 additions & 6 deletions shTests/SocksTCP/testSocksTCPOptimizerRandom.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
# This script runs a full end-to-end functional test of the dispatcher and the Replicant transportOptimizer transport with the Random Strategy. Each netcat instance can be used to type content which should appear in the other.
FILENAME=testSocksTCPOptimizerRandomOutput.txt

GOPATH=${GOPATH:-'$HOME/go'}

# Update and build code
go install

Expand All @@ -14,14 +12,14 @@ rm $FILENAME
nc -l 3333 >$FILENAME &

# Run the transport server
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -bindaddr shadow-127.0.0.1:2222 -target 127.0.0.1:3333 -transports shadow -optionsFile ../../ConfigFiles/shadowServer.json -logLevel DEBUG -enableLogging &
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Starbridge-127.0.0.1:2223 -transports Starbridge -optionsFile ../../ConfigFiles/StarbridgeServerConfig.json -logLevel DEBUG -enableLogging &
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -bindaddr Replicant-127.0.0.1:2224 -target 127.0.0.1:3333 -transports Replicant -optionsFile ../../ConfigFiles/ReplicantServerConfigV3.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -bindaddr shadow-127.0.0.1:2222 -target 127.0.0.1:3333 -transports shadow -optionsFile ../../ConfigFiles/shadowServer.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Starbridge-127.0.0.1:2223 -transports Starbridge -optionsFile ../../ConfigFiles/StarbridgeServerConfig.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -bindaddr Replicant-127.0.0.1:2224 -target 127.0.0.1:3333 -transports Replicant -optionsFile ../../ConfigFiles/ReplicantServerConfigV3.json -logLevel DEBUG -enableLogging &

sleep 5

# Run the transport client
"$GOPATH"/bin/shapeshifter-dispatcher -client -state state -transports Optimizer -proxylistenaddr 127.0.0.1:1443 -optionsFile ../../ConfigFiles/OptimizerRandom.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -client -state state -transports Optimizer -proxylistenaddr 127.0.0.1:1443 -optionsFile ../../ConfigFiles/OptimizerRandom.json -logLevel DEBUG -enableLogging &

sleep 1

Expand Down
10 changes: 4 additions & 6 deletions shTests/SocksTCP/testSocksTCPOptimizerRotate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
# An alternative way to run this test is to run each command in its own terminal. Each netcat instance can be used to type content which should appear in the other.
FILENAME=testSocksTCPOptimizerRotateOutput.txt

GOPATH=${GOPATH:-'$HOME/go'}

# Update and build code
go install

Expand All @@ -15,14 +13,14 @@ rm $FILENAME
nc -l 3333 >$FILENAME &

# Run the transport server
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr shadow-127.0.0.1:2222 -transports shadow -optionsFile ../../ConfigFiles/shadowServer.json -logLevel DEBUG -enableLogging &
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Starbridge-127.0.0.1:2223 -transports Starbridge -optionsFile ../../ConfigFiles/StarbridgeServerConfig.json -logLevel DEBUG -enableLogging &
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Replicant-127.0.0.1:2224 -transports Replicant -optionsFile ../../ConfigFiles/ReplicantServerConfigV3.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr shadow-127.0.0.1:2222 -transports shadow -optionsFile ../../ConfigFiles/shadowServer.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Starbridge-127.0.0.1:2223 -transports Starbridge -optionsFile ../../ConfigFiles/StarbridgeServerConfig.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Replicant-127.0.0.1:2224 -transports Replicant -optionsFile ../../ConfigFiles/ReplicantServerConfigV3.json -logLevel DEBUG -enableLogging &

sleep 5

# Run the transport client
"$GOPATH"/bin/shapeshifter-dispatcher -client -state state -transports Optimizer -proxylistenaddr 127.0.0.1:1443 -optionsFile ../../ConfigFiles/OptimizerRotate.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -client -state state -transports Optimizer -proxylistenaddr 127.0.0.1:1443 -optionsFile ../../ConfigFiles/OptimizerRotate.json -logLevel DEBUG -enableLogging &

sleep 1

Expand Down
10 changes: 4 additions & 6 deletions shTests/SocksTCP/testSocksTCPOptimizerTrack.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
# An alternative way to run this test is to run each command in its own terminal. Each netcat instance can be used to type content which should appear in the other.
FILENAME=testSocksTCPOptimizerTrackOutput.txt

GOPATH=${GOPATH:-'$HOME/go'}

# Update and build code
go install

Expand All @@ -15,14 +13,14 @@ rm $FILENAME
nc -l 3333 >$FILENAME &

# Run the transport server
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr shadow-127.0.0.1:2222 -transports shadow -optionsFile ../../ConfigFiles/shadowServer.json -logLevel DEBUG -enableLogging &
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Starbridge-127.0.0.1:2223 -transports Starbridge -optionsFile ../../ConfigFiles/StarbridgeServerConfig.json -logLevel DEBUG -enableLogging &
"$GOPATH"/bin/shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Replicant-127.0.0.1:2224 -transports Replicant -optionsFile ../../ConfigFiles/ReplicantServerConfigV3.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr shadow-127.0.0.1:2222 -transports shadow -optionsFile ../../ConfigFiles/shadowServer.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Starbridge-127.0.0.1:2223 -transports Starbridge -optionsFile ../../ConfigFiles/StarbridgeServerConfig.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -server -state state -target 127.0.0.1:3333 -bindaddr Replicant-127.0.0.1:2224 -transports Replicant -optionsFile ../../ConfigFiles/ReplicantServerConfigV3.json -logLevel DEBUG -enableLogging &

sleep 5

# Run the transport client
"$GOPATH"/bin/shapeshifter-dispatcher -client -state state -transports Optimizer -proxylistenaddr 127.0.0.1:1443 -optionsFile ../../ConfigFiles/OptimizerTrack.json -logLevel DEBUG -enableLogging &
shapeshifter-dispatcher -client -state state -transports Optimizer -proxylistenaddr 127.0.0.1:1443 -optionsFile ../../ConfigFiles/OptimizerTrack.json -logLevel DEBUG -enableLogging &

sleep 1

Expand Down
Loading