Skip to content

Error in block header serialization using msg pack #6395

@scholtz

Description

@scholtz

Subject of the issue

I am trying to download a block using msgpack encoding, however decoding fails.

Your environment

4.1.2 algod from Urtho

Steps to reproduce

  1. Download block 52243617, format msg pack, headers only

Expected behaviour

I expect json keys to be string not uints.

spt is map[bigint,sptobject], and should be encoded in the msgpack as map[bigint.ToString(),sptobject]

  Expected: "...8A0B9D14BE64AF887B4A373707481A13081A16ECE031D2D00A27463CEB..."
  But was:  "...8A0B9D14BE64AF887B4A3737074810081A16ECE031D2D00A27463CEBB6..."
  -------------------------------------------^

00 is raw 0, A130 is string "0"

I expect the algod follow the standards for encoding.

📚 References:

  1. JSON Specification (RFC 8259)
    "An object is an unordered collection of name/value pairs... A name is a string."
    📌 Source: RFC 8259 – The JavaScript Object Notation (JSON) Data Interchange Format

  2. MessagePack Specification
    "Map format family stores a key-value pair elements... A key and a value can be any types."
    📌 Source: MessagePack Spec – Map format

However, it also notes:

"If you want to convert MessagePack to JSON, keys must be strings."

  1. MessagePack for C# (MessagePack-CSharp) Documentation
    "Map keys should be string for compatibility with JSON."
    📌 Source: MessagePack-CSharp GitHub Wiki

Actual behaviour

I am receiving

81A5626C6F636BDE0014A26269CE008FA891A46561726ECE000354B0A26663CD9858A466656573C420C7FCCDB258F0D4189C2BF8B6D68EE697508642B0AD001F31FCB918C354BA859AA466726163CF000000019A73D62AA367656EAC6D61696E6E65742D76312E30A26768C420C061C4D8FC1DBDDED2D7604BE4568E3F6D041987AC37BDE4B620B5AB39248ADFA27070CE008FF4BDA470726576C4208C32ECE62209FFE1D36921D7FBA4116F29955B18ED53BDD67F636697A0DE2EB4A570726F746FD95968747470733A2F2F6769746875622E636F6D2F616C676F72616E64666F756E646174696F6E2F73706563732F747265652F32333664636331386339633530376437393438313361623736386534363765613432643162346439A3707270C4207E7F342D4DB54C9982C5FE241C0CF3E724DF3609B9D1DEB8664DCD73983EE04FA3726E64CE031D2CA1A6727763616C72CE03211620A3727764C420FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA473656564C4204EDE16B5C5C7E39F092F20659004E61C39462FD74AD488A0B9D14BE64AF887B4A3737074810081A16ECE031D2D00A27463CEBB651B7EA27473CE6888A6EFA374786EC420542FACDE15685204D8FF2FD140EFCCE0537E18C5E8909CDD224130E5D40EDCA2A674786E323536C420931F4E8F27F1AE024641CD3E4AA10E58B116B9A2815F9BA3C9AC499A247231C2

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions