good morning!!!!
Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
B
bor
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container registry
Harbor Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
open
bor
Commits
429077a5
Commit
429077a5
authored
Feb 4, 2015
by
Taylor Gerring
Browse files
Options
Downloads
Plain Diff
Merge branch 'develop' of github.com:tgerring/go-ethereum into develop
parents
2656a2d0
55ed0ff0
No related branches found
No related tags found
No related merge requests found
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
cmd/utils/cmd.go
+1
-1
1 addition, 1 deletion
cmd/utils/cmd.go
rpc/http/server.go
+7
-4
7 additions, 4 deletions
rpc/http/server.go
rpc/message.go
+12
-13
12 additions, 13 deletions
rpc/message.go
rpc/util.go
+3
-2
3 additions, 2 deletions
rpc/util.go
rpc/ws/server.go
+16
-19
16 additions, 19 deletions
rpc/ws/server.go
with
39 additions
and
39 deletions
cmd/utils/cmd.go
+
1
−
1
View file @
429077a5
...
@@ -205,7 +205,7 @@ func StartWebSockets(eth *eth.Ethereum, wsPort int) {
...
@@ -205,7 +205,7 @@ func StartWebSockets(eth *eth.Ethereum, wsPort int) {
clilogger
.
Infoln
(
"Starting WebSockets"
)
clilogger
.
Infoln
(
"Starting WebSockets"
)
var
err
error
var
err
error
eth
.
WsServer
,
err
=
rpcws
.
NewWebSocketServer
(
eth
,
wsPort
)
eth
.
WsServer
,
err
=
rpcws
.
NewWebSocketServer
(
x
eth
.
New
(
eth
)
,
wsPort
)
if
err
!=
nil
{
if
err
!=
nil
{
clilogger
.
Errorf
(
"Could not start RPC interface (port %v): %v"
,
wsPort
,
err
)
clilogger
.
Errorf
(
"Could not start RPC interface (port %v): %v"
,
wsPort
,
err
)
}
else
{
}
else
{
...
...
This diff is collapsed.
Click to expand it.
rpc/http/server.go
+
7
−
4
View file @
429077a5
...
@@ -84,6 +84,7 @@ func (s *RpcHttpServer) Start() {
...
@@ -84,6 +84,7 @@ func (s *RpcHttpServer) Start() {
}
}
func
(
s
*
RpcHttpServer
)
apiHandler
(
api
*
rpc
.
EthereumApi
)
http
.
Handler
{
func
(
s
*
RpcHttpServer
)
apiHandler
(
api
*
rpc
.
EthereumApi
)
http
.
Handler
{
var
jsonrpcver
string
=
"2.0"
fn
:=
func
(
w
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
fn
:=
func
(
w
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
w
.
Header
()
.
Set
(
"Access-Control-Allow-Origin"
,
"*"
)
w
.
Header
()
.
Set
(
"Access-Control-Allow-Origin"
,
"*"
)
...
@@ -91,20 +92,22 @@ func (s *RpcHttpServer) apiHandler(api *rpc.EthereumApi) http.Handler {
...
@@ -91,20 +92,22 @@ func (s *RpcHttpServer) apiHandler(api *rpc.EthereumApi) http.Handler {
reqParsed
,
reqerr
:=
JSON
.
ParseRequestBody
(
req
)
reqParsed
,
reqerr
:=
JSON
.
ParseRequestBody
(
req
)
if
reqerr
!=
nil
{
if
reqerr
!=
nil
{
JSON
.
Send
(
w
,
&
rpc
.
RpcErrorResponse
{
JsonRpc
:
reqParsed
.
JsonRpc
,
ID
:
reqParsed
.
ID
,
Error
:
true
,
ErrorText
:
rpc
.
ErrorParseRequest
})
jsonerr
:=
&
rpc
.
RpcErrorObject
{
-
32700
,
rpc
.
ErrorParseRequest
}
JSON
.
Send
(
w
,
&
rpc
.
RpcErrorResponse
{
JsonRpc
:
jsonrpcver
,
ID
:
nil
,
Error
:
jsonerr
})
return
return
}
}
var
response
interface
{}
var
response
interface
{}
reserr
:=
api
.
GetRequestReply
(
&
reqParsed
,
&
response
)
reserr
:=
api
.
GetRequestReply
(
&
reqParsed
,
&
response
)
if
reserr
!=
nil
{
if
reserr
!=
nil
{
rpchttplogger
.
Errorln
(
reserr
)
rpchttplogger
.
Warnln
(
reserr
)
JSON
.
Send
(
w
,
&
rpc
.
RpcErrorResponse
{
JsonRpc
:
reqParsed
.
JsonRpc
,
ID
:
reqParsed
.
ID
,
Error
:
true
,
ErrorText
:
reserr
.
Error
()})
jsonerr
:=
&
rpc
.
RpcErrorObject
{
-
32603
,
reserr
.
Error
()}
JSON
.
Send
(
w
,
&
rpc
.
RpcErrorResponse
{
JsonRpc
:
jsonrpcver
,
ID
:
&
reqParsed
.
ID
,
Error
:
jsonerr
})
return
return
}
}
rpchttplogger
.
Debugf
(
"Generated response: %T %s"
,
response
,
response
)
rpchttplogger
.
Debugf
(
"Generated response: %T %s"
,
response
,
response
)
JSON
.
Send
(
w
,
&
rpc
.
RpcSuccessResponse
{
JsonRpc
:
reqParsed
.
J
son
R
pc
,
ID
:
reqParsed
.
ID
,
Error
:
false
,
Result
:
response
})
JSON
.
Send
(
w
,
&
rpc
.
RpcSuccessResponse
{
JsonRpc
:
j
son
r
pc
ver
,
ID
:
reqParsed
.
ID
,
Result
:
response
})
}
}
return
http
.
HandlerFunc
(
fn
)
return
http
.
HandlerFunc
(
fn
)
...
...
This diff is collapsed.
Click to expand it.
rpc/message.go
+
12
−
13
View file @
429077a5
...
@@ -33,30 +33,29 @@ const (
...
@@ -33,30 +33,29 @@ const (
ErrorDecodeArgs
=
"Error: Could not decode arguments"
ErrorDecodeArgs
=
"Error: Could not decode arguments"
)
)
type
ErrorResponse
struct
{
type
RpcRequest
struct
{
Error
bool
`json:"error"`
JsonRpc
string
`json:"jsonrpc"`
ErrorText
string
`json:"errorText"`
ID
int
`json:"id"`
Method
string
`json:"method"`
Params
[]
json
.
RawMessage
`json:"params"`
}
}
type
RpcSuccessResponse
struct
{
type
RpcSuccessResponse
struct
{
ID
int
`json:"id"`
ID
int
`json:"id"`
JsonRpc
string
`json:"jsonrpc"`
JsonRpc
string
`json:"jsonrpc"`
Error
bool
`json:"error"`
Result
interface
{}
`json:"result"`
Result
interface
{}
`json:"result"`
}
}
type
RpcErrorResponse
struct
{
type
RpcErrorResponse
struct
{
ID
int
`json:"id"`
ID
*
int
`json:"id"`
JsonRpc
string
`json:"jsonrpc"`
JsonRpc
string
`json:"jsonrpc"`
Error
bool
`json:"error"`
Error
*
RpcErrorObject
`json:"error"`
ErrorText
string
`json:"errortext"`
}
}
type
RpcRequest
struct
{
type
RpcErrorObject
struct
{
JsonRpc
string
`json:"jsonrpc"`
Code
int
`json:"code"`
ID
int
`json:"id"`
Message
string
`json:"message"`
Method
string
`json:"method"`
// Data interface{} `json:"data"`
Params
[]
json
.
RawMessage
`json:"params"`
}
}
func
NewErrorResponse
(
msg
string
)
error
{
func
NewErrorResponse
(
msg
string
)
error
{
...
...
This diff is collapsed.
Click to expand it.
rpc/util.go
+
3
−
2
View file @
429077a5
...
@@ -18,10 +18,11 @@ package rpc
...
@@ -18,10 +18,11 @@ package rpc
import
(
import
(
"encoding/json"
"encoding/json"
"github.com/ethereum/go-ethereum/logger"
"io"
"io"
"net/http"
"net/http"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/state"
"github.com/ethereum/go-ethereum/state"
)
)
...
@@ -36,7 +37,7 @@ func (self JsonWrapper) Send(writer io.Writer, v interface{}) (n int, err error)
...
@@ -36,7 +37,7 @@ func (self JsonWrapper) Send(writer io.Writer, v interface{}) (n int, err error)
rpclogger
.
Fatalln
(
"Error marshalling JSON"
,
err
)
rpclogger
.
Fatalln
(
"Error marshalling JSON"
,
err
)
return
0
,
err
return
0
,
err
}
}
rpclogger
.
Info
f
(
"Sending payload: %s"
,
payload
)
rpclogger
.
DebugDetail
f
(
"Sending payload: %s"
,
payload
)
return
writer
.
Write
(
payload
)
return
writer
.
Write
(
payload
)
}
}
...
...
This diff is collapsed.
Click to expand it.
rpc/ws/server.go
+
16
−
19
View file @
429077a5
...
@@ -22,35 +22,30 @@ import (
...
@@ -22,35 +22,30 @@ import (
"net/http"
"net/http"
"code.google.com/p/go.net/websocket"
"code.google.com/p/go.net/websocket"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/event/filter"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/rpc"
"github.com/ethereum/go-ethereum/rpc"
"github.com/ethereum/go-ethereum/xeth"
"github.com/ethereum/go-ethereum/xeth"
)
)
var
wslogger
=
logger
.
NewLogger
(
"RPC-WS"
)
var
wslogger
=
logger
.
NewLogger
(
"RPC-WS"
)
var
JSON
rpc
.
JsonWrapper
type
WebSocketServer
struct
{
type
WebSocketServer
struct
{
eth
*
eth
.
Ethereum
pipe
*
xeth
.
XEth
filterManager
*
filter
.
FilterManager
port
int
port
int
doneCh
chan
bool
doneCh
chan
bool
listener
net
.
Listener
listener
net
.
Listener
}
}
func
NewWebSocketServer
(
eth
*
eth
.
Eth
ereum
,
port
int
)
(
*
WebSocketServer
,
error
)
{
func
NewWebSocketServer
(
pipe
*
x
eth
.
X
Eth
,
port
int
)
(
*
WebSocketServer
,
error
)
{
sport
:=
fmt
.
Sprintf
(
":%d"
,
port
)
sport
:=
fmt
.
Sprintf
(
":%d"
,
port
)
l
,
err
:=
net
.
Listen
(
"tcp"
,
sport
)
l
,
err
:=
net
.
Listen
(
"tcp"
,
sport
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
filterManager
:=
filter
.
NewFilterManager
(
eth
.
EventMux
())
return
&
WebSocketServer
{
go
filterManager
.
Start
()
pipe
,
return
&
WebSocketServer
{
eth
,
filterManager
,
port
,
port
,
make
(
chan
bool
),
make
(
chan
bool
),
l
,
l
,
...
@@ -75,7 +70,7 @@ func (self *WebSocketServer) Start() {
...
@@ -75,7 +70,7 @@ func (self *WebSocketServer) Start() {
wslogger
.
Infof
(
"Starting RPC-WS server on port %d"
,
self
.
port
)
wslogger
.
Infof
(
"Starting RPC-WS server on port %d"
,
self
.
port
)
go
self
.
handlerLoop
()
go
self
.
handlerLoop
()
api
:=
rpc
.
NewEthereumApi
(
xeth
.
New
(
self
.
eth
)
)
api
:=
rpc
.
NewEthereumApi
(
self
.
pipe
)
h
:=
self
.
apiHandler
(
api
)
h
:=
self
.
apiHandler
(
api
)
http
.
Handle
(
"/ws"
,
h
)
http
.
Handle
(
"/ws"
,
h
)
...
@@ -96,27 +91,29 @@ func (s *WebSocketServer) apiHandler(api *rpc.EthereumApi) http.Handler {
...
@@ -96,27 +91,29 @@ func (s *WebSocketServer) apiHandler(api *rpc.EthereumApi) http.Handler {
}
}
func
sockHandler
(
api
*
rpc
.
EthereumApi
)
websocket
.
Handler
{
func
sockHandler
(
api
*
rpc
.
EthereumApi
)
websocket
.
Handler
{
var
jsonrpcver
string
=
"2.0"
fn
:=
func
(
conn
*
websocket
.
Conn
)
{
fn
:=
func
(
conn
*
websocket
.
Conn
)
{
for
{
for
{
wslogger
.
Debugln
(
"Handling request"
)
wslogger
.
Debugln
(
"Handling request"
)
var
reqParsed
rpc
.
RpcRequest
var
reqParsed
rpc
.
RpcRequest
if
err
:=
websocket
.
JSON
.
Receive
(
conn
,
&
reqParsed
);
err
!=
nil
{
if
err
:=
websocket
.
JSON
.
Receive
(
conn
,
&
reqParsed
);
err
!=
nil
{
wslogger
.
Debugln
(
rpc
.
ErrorParseRequest
)
jsonerr
:=
&
rpc
.
RpcErrorObject
{
-
32700
,
rpc
.
ErrorParseRequest
}
websocket
.
JSON
.
Send
(
conn
,
rpc
.
RpcErrorResponse
{
JsonRpc
:
reqParsed
.
J
son
R
pc
,
ID
:
reqParsed
.
ID
,
Error
:
true
,
ErrorText
:
rpc
.
ErrorParseRequest
})
JSON
.
Send
(
conn
,
&
rpc
.
RpcErrorResponse
{
JsonRpc
:
j
son
r
pc
ver
,
ID
:
nil
,
Error
:
jsonerr
})
continue
continue
}
}
var
response
interface
{}
var
response
interface
{}
reserr
:=
api
.
GetRequestReply
(
&
reqParsed
,
&
response
)
reserr
:=
api
.
GetRequestReply
(
&
reqParsed
,
&
response
)
if
reserr
!=
nil
{
if
reserr
!=
nil
{
wslogger
.
Errorln
(
reserr
)
wslogger
.
Warnln
(
reserr
)
websocket
.
JSON
.
Send
(
conn
,
rpc
.
RpcErrorResponse
{
JsonRpc
:
reqParsed
.
JsonRpc
,
ID
:
reqParsed
.
ID
,
Error
:
true
,
ErrorText
:
reserr
.
Error
()})
jsonerr
:=
&
rpc
.
RpcErrorObject
{
-
32603
,
reserr
.
Error
()}
JSON
.
Send
(
conn
,
&
rpc
.
RpcErrorResponse
{
JsonRpc
:
jsonrpcver
,
ID
:
&
reqParsed
.
ID
,
Error
:
jsonerr
})
continue
continue
}
}
wslogger
.
Debugf
(
"Generated response: %T %s"
,
response
,
response
)
wslogger
.
Debugf
(
"Generated response: %T %s"
,
response
,
response
)
websocket
.
JSON
.
Send
(
conn
,
rpc
.
RpcSuccessResponse
{
JsonRpc
:
reqParsed
.
J
son
R
pc
,
ID
:
reqParsed
.
ID
,
Error
:
false
,
Result
:
response
})
JSON
.
Send
(
conn
,
&
rpc
.
RpcSuccessResponse
{
JsonRpc
:
j
son
r
pc
ver
,
ID
:
reqParsed
.
ID
,
Result
:
response
})
}
}
}
}
return
websocket
.
Handler
(
fn
)
return
websocket
.
Handler
(
fn
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment