Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
4322632c
Commit
4322632c
authored
Feb 19, 2015
by
Taylor Gerring
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #339 from tgerring/jsonlog
JSON log updates
parents
fdecc111
07bdba68
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
296 additions
and
300 deletions
+296
-300
main.go
cmd/ethereum/main.go
+1
-0
backend.go
eth/backend.go
+0
-2
types.go
logger/types.go
+295
-298
No files found.
cmd/ethereum/main.go
View file @
4322632c
...
...
@@ -67,6 +67,7 @@ func main() {
DataDir
:
Datadir
,
LogFile
:
LogFile
,
LogLevel
:
LogLevel
,
LogFormat
:
LogFormat
,
MaxPeers
:
MaxPeer
,
Port
:
OutboundPort
,
NAT
:
NAT
,
...
...
eth/backend.go
View file @
4322632c
...
...
@@ -209,9 +209,7 @@ func (s *Ethereum) Coinbase() []byte { return nil } // TODO
func
(
s
*
Ethereum
)
Start
()
error
{
jsonlogger
.
LogJson
(
&
ethlogger
.
LogStarting
{
ClientString
:
s
.
net
.
Name
,
Coinbase
:
ethutil
.
Bytes2Hex
(
s
.
KeyManager
()
.
Address
()),
ProtocolVersion
:
ProtocolVersion
,
LogEvent
:
ethlogger
.
LogEvent
{
Guid
:
ethutil
.
Bytes2Hex
(
crypto
.
FromECDSAPub
(
&
s
.
net
.
PrivateKey
.
PublicKey
))},
})
err
:=
s
.
net
.
Start
()
...
...
logger/types.go
View file @
4322632c
...
...
@@ -7,7 +7,6 @@ import (
type
utctime8601
struct
{}
func
(
utctime8601
)
MarshalJSON
()
([]
byte
,
error
)
{
// FIX This should be re-formated for proper ISO 8601
return
[]
byte
(
`"`
+
time
.
Now
()
.
UTC
()
.
Format
(
time
.
RFC3339Nano
)[
:
26
]
+
`Z"`
),
nil
}
...
...
@@ -16,14 +15,13 @@ type JsonLog interface {
}
type
LogEvent
struct
{
Guid
string
`json:"guid"`
Ts
utctime8601
`json:"ts"`
//
Guid string `json:"guid"`
Ts
utctime8601
`json:"ts"`
// Level string `json:"level"`
}
type
LogStarting
struct
{
ClientString
string
`json:"version_string"`
Coinbase
string
`json:"coinbase"`
ClientString
string
`json:"client_impl"`
ProtocolVersion
int
`json:"eth_version"`
LogEvent
}
...
...
@@ -32,17 +30,6 @@ func (l *LogStarting) EventName() string {
return
"starting"
}
type
P2PConnecting
struct
{
RemoteId
string
`json:"remote_id"`
RemoteEndpoint
string
`json:"remote_endpoint"`
NumConnections
int
`json:"num_connections"`
LogEvent
}
func
(
l
*
P2PConnecting
)
EventName
()
string
{
return
"p2p.connecting"
}
type
P2PConnected
struct
{
RemoteId
string
`json:"remote_id"`
RemoteAddress
string
`json:"remote_addr"`
...
...
@@ -55,268 +42,46 @@ func (l *P2PConnected) EventName() string {
return
"p2p.connected"
}
type
P2PHandshaked
struct
{
RemoteCapabilities
[]
string
`json:"remote_capabilities"`
RemoteId
string
`json:"remote_id"`
NumConnections
int
`json:"num_connections"`
LogEvent
}
func
(
l
*
P2PHandshaked
)
EventName
()
string
{
return
"p2p.handshaked"
}
type
P2PDisconnected
struct
{
NumConnections
int
`json:"num_connections"`
RemoteId
string
`json:"remote_id"`
LogEvent
}
func
(
l
*
P2PDisconnected
)
EventName
()
string
{
return
"p2p.disconnected"
}
type
P2PDisconnecting
struct
{
Reason
string
`json:"reason"`
RemoteId
string
`json:"remote_id"`
NumConnections
int
`json:"num_connections"`
LogEvent
}
func
(
l
*
P2PDisconnecting
)
EventName
()
string
{
return
"p2p.disconnecting"
}
type
P2PDisconnectingBadHandshake
struct
{
Reason
string
`json:"reason"`
RemoteId
string
`json:"remote_id"`
NumConnections
int
`json:"num_connections"`
LogEvent
}
func
(
l
*
P2PDisconnectingBadHandshake
)
EventName
()
string
{
return
"p2p.disconnecting.bad_handshake"
}
type
P2PDisconnectingBadProtocol
struct
{
Reason
string
`json:"reason"`
RemoteId
string
`json:"remote_id"`
NumConnections
int
`json:"num_connections"`
LogEvent
}
func
(
l
*
P2PDisconnectingBadProtocol
)
EventName
()
string
{
return
"p2p.disconnecting.bad_protocol"
}
type
P2PDisconnectingReputation
struct
{
Reason
string
`json:"reason"`
RemoteId
string
`json:"remote_id"`
NumConnections
int
`json:"num_connections"`
LogEvent
}
func
(
l
*
P2PDisconnectingReputation
)
EventName
()
string
{
return
"p2p.disconnecting.reputation"
}
type
P2PDisconnectingDHT
struct
{
Reason
string
`json:"reason"`
RemoteId
string
`json:"remote_id"`
NumConnections
int
`json:"num_connections"`
LogEvent
}
func
(
l
*
P2PDisconnectingDHT
)
EventName
()
string
{
return
"p2p.disconnecting.dht"
}
type
P2PEthDisconnectingBadBlock
struct
{
Reason
string
`json:"reason"`
RemoteId
string
`json:"remote_id"`
NumConnections
int
`json:"num_connections"`
LogEvent
}
func
(
l
*
P2PEthDisconnectingBadBlock
)
EventName
()
string
{
return
"p2p.eth.disconnecting.bad_block"
}
type
P2PEthDisconnectingBadTx
struct
{
Reason
string
`json:"reason"`
RemoteId
string
`json:"remote_id"`
NumConnections
int
`json:"num_connections"`
LogEvent
}
func
(
l
*
P2PEthDisconnectingBadTx
)
EventName
()
string
{
return
"p2p.eth.disconnecting.bad_tx"
}
type
EthNewBlockMined
struct
{
BlockNumber
int
`json:"block_number"`
HeadHash
string
`json:"head_hash"`
BlockHash
string
`json:"block_hash"`
BlockHexRlp
string
`json:"block_hexrlp"`
BlockDifficulty
int
`json:"block_difficulty"`
BlockPrevHash
string
`json:"block_prev_hash"`
LogEvent
}
func
(
l
*
EthNewBlockMined
)
EventName
()
string
{
return
"eth.newblock.mined"
}
type
EthNewBlockBroadcasted
struct
{
BlockNumber
int
`json:"block_number"`
HeadHash
string
`json:"head_hash"`
BlockHash
string
`json:"block_hash"`
BlockDifficulty
int
`json:"block_difficulty"`
BlockPrevHash
string
`json:"block_prev_hash"`
type
EthMinerNewBlock
struct
{
BlockHash
string
`json:"block_hash"`
BlockNumber
int
`json:"block_number"`
ChainHeadHash
string
`json:"chain_head_hash"`
BlockPrevHash
string
`json:"block_prev_hash"`
LogEvent
}
func
(
l
*
Eth
NewBlockBroadcasted
)
EventName
()
string
{
return
"eth.
newblock.broadcasted
"
func
(
l
*
Eth
MinerNewBlock
)
EventName
()
string
{
return
"eth.
miner.new_block
"
}
type
Eth
NewBlockReceived
struct
{
Block
Number
int
`json:"block_number
"`
HeadHash
string
`json:"head_hash
"`
BlockHash
string
`json:"block
_hash"`
Block
Difficulty
int
`json:"block_difficulty
"`
BlockPrevHash
string
`json:"block_prev_hash
"`
type
Eth
ChainReceivedNewBlock
struct
{
Block
Hash
string
`json:"block_hash
"`
BlockNumber
int
`json:"block_number
"`
ChainHeadHash
string
`json:"chain_head
_hash"`
Block
PrevHash
string
`json:"block_prev_hash
"`
RemoteId
int
`json:"remote_id
"`
LogEvent
}
func
(
l
*
Eth
NewBlockReceived
)
EventName
()
string
{
return
"eth.
newblock.received
"
func
(
l
*
Eth
ChainReceivedNewBlock
)
EventName
()
string
{
return
"eth.
chain.received.new_block
"
}
type
EthNewBlockIsKnown
struct
{
BlockNumber
int
`json:"block_number"`
HeadHash
string
`json:"head_hash"`
BlockHash
string
`json:"block_hash"`
BlockDifficulty
int
`json:"block_difficulty"`
BlockPrevHash
string
`json:"block_prev_hash"`
type
EthChainNewHead
struct
{
BlockHash
string
`json:"block_hash"`
BlockNumber
int
`json:"block_number"`
ChainHeadHash
string
`json:"chain_head_hash"`
BlockPrevHash
string
`json:"block_prev_hash"`
LogEvent
}
func
(
l
*
EthNewBlockIsKnown
)
EventName
()
string
{
return
"eth.newblock.is_known"
}
type
EthNewBlockIsNew
struct
{
BlockNumber
int
`json:"block_number"`
HeadHash
string
`json:"head_hash"`
BlockHash
string
`json:"block_hash"`
BlockDifficulty
int
`json:"block_difficulty"`
BlockPrevHash
string
`json:"block_prev_hash"`
LogEvent
}
func
(
l
*
EthNewBlockIsNew
)
EventName
()
string
{
return
"eth.newblock.is_new"
}
type
EthNewBlockMissingParent
struct
{
BlockNumber
int
`json:"block_number"`
HeadHash
string
`json:"head_hash"`
BlockHash
string
`json:"block_hash"`
BlockDifficulty
int
`json:"block_difficulty"`
BlockPrevHash
string
`json:"block_prev_hash"`
LogEvent
}
func
(
l
*
EthNewBlockMissingParent
)
EventName
()
string
{
return
"eth.newblock.missing_parent"
}
type
EthNewBlockIsInvalid
struct
{
BlockNumber
int
`json:"block_number"`
HeadHash
string
`json:"head_hash"`
BlockHash
string
`json:"block_hash"`
BlockDifficulty
int
`json:"block_difficulty"`
BlockPrevHash
string
`json:"block_prev_hash"`
LogEvent
}
func
(
l
*
EthNewBlockIsInvalid
)
EventName
()
string
{
return
"eth.newblock.is_invalid"
}
type
EthNewBlockChainIsOlder
struct
{
BlockNumber
int
`json:"block_number"`
HeadHash
string
`json:"head_hash"`
BlockHash
string
`json:"block_hash"`
BlockDifficulty
int
`json:"block_difficulty"`
BlockPrevHash
string
`json:"block_prev_hash"`
LogEvent
}
func
(
l
*
EthNewBlockChainIsOlder
)
EventName
()
string
{
return
"eth.newblock.chain.is_older"
}
type
EthNewBlockChainIsCanonical
struct
{
BlockNumber
int
`json:"block_number"`
HeadHash
string
`json:"head_hash"`
BlockHash
string
`json:"block_hash"`
BlockDifficulty
int
`json:"block_difficulty"`
BlockPrevHash
string
`json:"block_prev_hash"`
LogEvent
}
func
(
l
*
EthNewBlockChainIsCanonical
)
EventName
()
string
{
return
"eth.newblock.chain.is_cannonical"
}
type
EthNewBlockChainNotCanonical
struct
{
BlockNumber
int
`json:"block_number"`
HeadHash
string
`json:"head_hash"`
BlockHash
string
`json:"block_hash"`
BlockDifficulty
int
`json:"block_difficulty"`
BlockPrevHash
string
`json:"block_prev_hash"`
LogEvent
}
func
(
l
*
EthNewBlockChainNotCanonical
)
EventName
()
string
{
return
"eth.newblock.chain.not_cannonical"
}
type
EthNewBlockChainSwitched
struct
{
BlockNumber
int
`json:"block_number"`
HeadHash
string
`json:"head_hash"`
OldHeadHash
string
`json:"old_head_hash"`
BlockHash
string
`json:"block_hash"`
BlockDifficulty
int
`json:"block_difficulty"`
BlockPrevHash
string
`json:"block_prev_hash"`
LogEvent
}
func
(
l
*
EthNewBlockChainSwitched
)
EventName
()
string
{
return
"eth.newblock.chain.switched"
}
type
EthTxCreated
struct
{
TxHash
string
`json:"tx_hash"`
TxSender
string
`json:"tx_sender"`
TxAddress
string
`json:"tx_address"`
TxHexRLP
string
`json:"tx_hexrlp"`
TxNonce
int
`json:"tx_nonce"`
LogEvent
}
func
(
l
*
EthTxCreated
)
EventName
()
string
{
return
"eth.tx.created"
func
(
l
*
EthChainNewHead
)
EventName
()
string
{
return
"eth.chain.new_head"
}
type
EthTxReceived
struct
{
TxHash
string
`json:"tx_hash"`
TxAddress
string
`json:"tx_address"`
TxHexRLP
string
`json:"tx_hexrlp"`
RemoteId
string
`json:"remote_id"`
TxNonce
int
`json:"tx_nonce"`
TxHash
string
`json:"tx_hash"`
RemoteId
string
`json:"remote_id"`
LogEvent
}
...
...
@@ -324,39 +89,271 @@ func (l *EthTxReceived) EventName() string {
return
"eth.tx.received"
}
type
EthTxBroadcasted
struct
{
TxHash
string
`json:"tx_hash"`
TxSender
string
`json:"tx_sender"`
TxAddress
string
`json:"tx_address"`
TxNonce
int
`json:"tx_nonce"`
LogEvent
}
func
(
l
*
EthTxBroadcasted
)
EventName
()
string
{
return
"eth.tx.broadcasted"
}
type
EthTxValidated
struct
{
TxHash
string
`json:"tx_hash"`
TxSender
string
`json:"tx_sender"`
TxAddress
string
`json:"tx_address"`
TxNonce
int
`json:"tx_nonce"`
LogEvent
}
func
(
l
*
EthTxValidated
)
EventName
()
string
{
return
"eth.tx.validated"
}
type
EthTxIsInvalid
struct
{
TxHash
string
`json:"tx_hash"`
TxSender
string
`json:"tx_sender"`
TxAddress
string
`json:"tx_address"`
Reason
string
`json:"reason"`
TxNonce
int
`json:"tx_nonce"`
LogEvent
}
func
(
l
*
EthTxIsInvalid
)
EventName
()
string
{
return
"eth.tx.is_invalid"
}
//
//
// The types below are legacy and need to be converted to new format or deleted
//
//
// type P2PConnecting struct {
// RemoteId string `json:"remote_id"`
// RemoteEndpoint string `json:"remote_endpoint"`
// NumConnections int `json:"num_connections"`
// LogEvent
// }
// func (l *P2PConnecting) EventName() string {
// return "p2p.connecting"
// }
// type P2PHandshaked struct {
// RemoteCapabilities []string `json:"remote_capabilities"`
// RemoteId string `json:"remote_id"`
// NumConnections int `json:"num_connections"`
// LogEvent
// }
// func (l *P2PHandshaked) EventName() string {
// return "p2p.handshaked"
// }
// type P2PDisconnected struct {
// NumConnections int `json:"num_connections"`
// RemoteId string `json:"remote_id"`
// LogEvent
// }
// func (l *P2PDisconnected) EventName() string {
// return "p2p.disconnected"
// }
// type P2PDisconnecting struct {
// Reason string `json:"reason"`
// RemoteId string `json:"remote_id"`
// NumConnections int `json:"num_connections"`
// LogEvent
// }
// func (l *P2PDisconnecting) EventName() string {
// return "p2p.disconnecting"
// }
// type P2PDisconnectingBadHandshake struct {
// Reason string `json:"reason"`
// RemoteId string `json:"remote_id"`
// NumConnections int `json:"num_connections"`
// LogEvent
// }
// func (l *P2PDisconnectingBadHandshake) EventName() string {
// return "p2p.disconnecting.bad_handshake"
// }
// type P2PDisconnectingBadProtocol struct {
// Reason string `json:"reason"`
// RemoteId string `json:"remote_id"`
// NumConnections int `json:"num_connections"`
// LogEvent
// }
// func (l *P2PDisconnectingBadProtocol) EventName() string {
// return "p2p.disconnecting.bad_protocol"
// }
// type P2PDisconnectingReputation struct {
// Reason string `json:"reason"`
// RemoteId string `json:"remote_id"`
// NumConnections int `json:"num_connections"`
// LogEvent
// }
// func (l *P2PDisconnectingReputation) EventName() string {
// return "p2p.disconnecting.reputation"
// }
// type P2PDisconnectingDHT struct {
// Reason string `json:"reason"`
// RemoteId string `json:"remote_id"`
// NumConnections int `json:"num_connections"`
// LogEvent
// }
// func (l *P2PDisconnectingDHT) EventName() string {
// return "p2p.disconnecting.dht"
// }
// type P2PEthDisconnectingBadBlock struct {
// Reason string `json:"reason"`
// RemoteId string `json:"remote_id"`
// NumConnections int `json:"num_connections"`
// LogEvent
// }
// func (l *P2PEthDisconnectingBadBlock) EventName() string {
// return "p2p.eth.disconnecting.bad_block"
// }
// type P2PEthDisconnectingBadTx struct {
// Reason string `json:"reason"`
// RemoteId string `json:"remote_id"`
// NumConnections int `json:"num_connections"`
// LogEvent
// }
// func (l *P2PEthDisconnectingBadTx) EventName() string {
// return "p2p.eth.disconnecting.bad_tx"
// }
// type EthNewBlockBroadcasted struct {
// BlockNumber int `json:"block_number"`
// HeadHash string `json:"head_hash"`
// BlockHash string `json:"block_hash"`
// BlockDifficulty int `json:"block_difficulty"`
// BlockPrevHash string `json:"block_prev_hash"`
// LogEvent
// }
// func (l *EthNewBlockBroadcasted) EventName() string {
// return "eth.newblock.broadcasted"
// }
// type EthNewBlockIsKnown struct {
// BlockNumber int `json:"block_number"`
// HeadHash string `json:"head_hash"`
// BlockHash string `json:"block_hash"`
// BlockDifficulty int `json:"block_difficulty"`
// BlockPrevHash string `json:"block_prev_hash"`
// LogEvent
// }
// func (l *EthNewBlockIsKnown) EventName() string {
// return "eth.newblock.is_known"
// }
// type EthNewBlockIsNew struct {
// BlockNumber int `json:"block_number"`
// HeadHash string `json:"head_hash"`
// BlockHash string `json:"block_hash"`
// BlockDifficulty int `json:"block_difficulty"`
// BlockPrevHash string `json:"block_prev_hash"`
// LogEvent
// }
// func (l *EthNewBlockIsNew) EventName() string {
// return "eth.newblock.is_new"
// }
// type EthNewBlockMissingParent struct {
// BlockNumber int `json:"block_number"`
// HeadHash string `json:"head_hash"`
// BlockHash string `json:"block_hash"`
// BlockDifficulty int `json:"block_difficulty"`
// BlockPrevHash string `json:"block_prev_hash"`
// LogEvent
// }
// func (l *EthNewBlockMissingParent) EventName() string {
// return "eth.newblock.missing_parent"
// }
// type EthNewBlockIsInvalid struct {
// BlockNumber int `json:"block_number"`
// HeadHash string `json:"head_hash"`
// BlockHash string `json:"block_hash"`
// BlockDifficulty int `json:"block_difficulty"`
// BlockPrevHash string `json:"block_prev_hash"`
// LogEvent
// }
// func (l *EthNewBlockIsInvalid) EventName() string {
// return "eth.newblock.is_invalid"
// }
// type EthNewBlockChainIsOlder struct {
// BlockNumber int `json:"block_number"`
// HeadHash string `json:"head_hash"`
// BlockHash string `json:"block_hash"`
// BlockDifficulty int `json:"block_difficulty"`
// BlockPrevHash string `json:"block_prev_hash"`
// LogEvent
// }
// func (l *EthNewBlockChainIsOlder) EventName() string {
// return "eth.newblock.chain.is_older"
// }
// type EthNewBlockChainIsCanonical struct {
// BlockNumber int `json:"block_number"`
// HeadHash string `json:"head_hash"`
// BlockHash string `json:"block_hash"`
// BlockDifficulty int `json:"block_difficulty"`
// BlockPrevHash string `json:"block_prev_hash"`
// LogEvent
// }
// func (l *EthNewBlockChainIsCanonical) EventName() string {
// return "eth.newblock.chain.is_cannonical"
// }
// type EthNewBlockChainNotCanonical struct {
// BlockNumber int `json:"block_number"`
// HeadHash string `json:"head_hash"`
// BlockHash string `json:"block_hash"`
// BlockDifficulty int `json:"block_difficulty"`
// BlockPrevHash string `json:"block_prev_hash"`
// LogEvent
// }
// func (l *EthNewBlockChainNotCanonical) EventName() string {
// return "eth.newblock.chain.not_cannonical"
// }
// type EthTxCreated struct {
// TxHash string `json:"tx_hash"`
// TxSender string `json:"tx_sender"`
// TxAddress string `json:"tx_address"`
// TxHexRLP string `json:"tx_hexrlp"`
// TxNonce int `json:"tx_nonce"`
// LogEvent
// }
// func (l *EthTxCreated) EventName() string {
// return "eth.tx.created"
// }
// type EthTxBroadcasted struct {
// TxHash string `json:"tx_hash"`
// TxSender string `json:"tx_sender"`
// TxAddress string `json:"tx_address"`
// TxNonce int `json:"tx_nonce"`
// LogEvent
// }
// func (l *EthTxBroadcasted) EventName() string {
// return "eth.tx.broadcasted"
// }
// type EthTxValidated struct {
// TxHash string `json:"tx_hash"`
// TxSender string `json:"tx_sender"`
// TxAddress string `json:"tx_address"`
// TxNonce int `json:"tx_nonce"`
// LogEvent
// }
// func (l *EthTxValidated) EventName() string {
// return "eth.tx.validated"
// }
// type EthTxIsInvalid struct {
// TxHash string `json:"tx_hash"`
// TxSender string `json:"tx_sender"`
// TxAddress string `json:"tx_address"`
// Reason string `json:"reason"`
// TxNonce int `json:"tx_nonce"`
// LogEvent
// }
// func (l *EthTxIsInvalid) EventName() string {
// return "eth.tx.is_invalid"
// }
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment