bug fixes (TCP + uint256) and started core part (#14)

* Fixed TCP read + Uint256 reversed array + started on some core pieces

* Disabled some debug output + muted test

* 0.5.0
This commit is contained in:
Anthony De Meulemeester 2018-02-04 20:54:51 +01:00 committed by GitHub
parent 5aed624f1d
commit 628656483a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
27 changed files with 824 additions and 337 deletions

View file

@ -77,6 +77,7 @@ const (
cmdBlock = "block"
cmdTX = "tx"
cmdConsensus = "consensus"
cmdUnknown = "unknown"
)
func newMessage(magic NetMode, cmd commandType, p payload.Payload) *Message {
@ -119,7 +120,7 @@ func (m *Message) commandType() commandType {
return cmdAddr
case "getheaders":
return cmdGetHeaders
case "header":
case "headers":
return cmdHeaders
case "getblocks":
return cmdGetBlocks
@ -134,7 +135,7 @@ func (m *Message) commandType() commandType {
case "consensus":
return cmdConsensus
default:
return ""
return cmdUnknown
}
}
@ -154,8 +155,8 @@ func (m *Message) decode(r io.Reader) error {
}
func (m *Message) decodePayload(r io.Reader) error {
buf := make([]byte, m.Length)
n, err := r.Read(buf)
buf := new(bytes.Buffer)
n, err := io.CopyN(buf, r, int64(m.Length))
if err != nil {
return err
}
@ -165,11 +166,12 @@ func (m *Message) decodePayload(r io.Reader) error {
}
// Compare the checksum of the payload.
if !compareChecksum(m.Checksum, buf) {
if !compareChecksum(m.Checksum, buf.Bytes()) {
return errChecksumMismatch
}
r = bytes.NewReader(buf)
//r = bytes.NewReader(buf)
r = buf
var p payload.Payload
switch m.commandType() {
case cmdVersion:
@ -192,6 +194,16 @@ func (m *Message) decodePayload(r io.Reader) error {
if err := p.DecodeBinary(r); err != nil {
return err
}
case cmdGetHeaders:
p = &payload.GetBlocks{}
if err := p.DecodeBinary(r); err != nil {
return err
}
case cmdHeaders:
p = &payload.Headers{}
if err := p.DecodeBinary(r); err != nil {
return err
}
}
m.Payload = p