Skip to content

v4.0.0

Compare
Choose a tag to compare
@JeremyPansier JeremyPansier released this 27 Oct 13:03
· 7 commits to main since this release

4.0.0 (2023-10-27)

Breaking Changes


BREAKING CHANGE: Node and UI server APIs have changed.
1. Node
* Modified:
  - UTXO and Output data structures "has_income" field have been renamed to "is_yielding"
  - Block data structure fields have been reordered:
    - Block data structure was:
    {
      "timestamp":                    int64
      "previous_hash":                [32]byte
      "transactions":                 []Transaction
      "added_registered_addresses":   []string
      "removed_registered_addresses": []string
    }
    - Block data structure is now:
    {
      "previous_hash":                [32]byte
      "added_registered_addresses":   []string
      "removed_registered_addresses": []string
      "timestamp":                    int64
      "transactions":                 []Transaction
    }
2. Node and UI server
* Modified:
  - Output data structure "has_income" field has been renamed to "is_yielding"
  • node: redefine endpoint routes and improve decoupling (#238) (283f8fb)

BREAKING CHANGE: Node and UI server APIs have changed.
1. Node
* Added:
  - "Get first block timestamp" endpoint for route: /first-block-timestamp
* Removed:
  - "Get block" endpoint
* Modified:
  - All request and response data structures have changed, see node/README.md
  - "Get blocks" endpoint route is now: /blocks
  - "Share targets" endpoint route is now: /targets
  - "Add transaction" endpoint route is now: /transaction
  - "Get transactions" endpoint route is now: /transactions
  - "Get UTXOs" endpoint route is now: /utxos
2. UI server
* Modified:
  - All request and response data structures have changed, see ui/README.md

BREAKING CHANGE: Get blocks endpoint has changed and Get last blocks has been removed.
- Get blocks:
request value was "GET BLOCKS"
request value is now:
BlocksRequest {
  StartingBlockHeight uint64
}
- Get last blocks has been removed

BREAKING CHANGE: The income calculation has changed.

BREAKING CHANGE: Node and UI APIs have changed.
1. Both Node and UI
* Added:
  - The data structure for input:
  Input {
    OutputIndex   uint16
    TransactionId string
    PublicKey     string
    Signature     string
  }
  - The data structure for output:
  Output {
    Address   string
    HasReward bool
    HasIncome bool
    Value     uint64
  }
* Modified:
  - The transaction data structure for response was:
  TransactionResponse {
    RecipientAddress string
    SenderAddress    string
    SenderPublicKey  string
    Signature        string
    Timestamp        int64
    Value            uint64
    Fee              uint64
  }
  - The transaction data structure for response is:
  TransactionResponse {
    Id        string
    Inputs    []*InputResponse
    Outputs   []*OutputResponse
    Timestamp int64
  }
2. Node
* Added:
  - Endpoint: Get block
  - Endpoint: Get UTXOs
* Removed:
  - Endpoint: Get amount
* Modified:
  - The data structure for target request was:
  TargetRequest {
    Ip   string
    Port uint16
  }
  - The data structure for target request is:
  TargetRequest {
    Ip   string
  }
  - The data structure for transaction request was:
  TransactionRequest {
    Fee                          uint64
    RecipientAddress             string
    SenderAddress                string
    SenderPublicKey              string
    Signature                    string
    Timestamp                    int64
    TransactionBroadcasterTarget string
    Value                        uint64
  }
  - The data structure for transaction request is:
  TransactionRequest {
    Inputs                       []InputRequest
    Outputs                      []OutputRequest
    Timestamp                    int64
    TransactionBroadcasterTarget string
  }
3. UI
* Added:
  - Endpoint: GET transaction/info
* Modified:
  - The data structure for transaction request was:
  TransactionRequest {
    Fee                          uint64
    RecipientAddress             string
    SenderAddress                string
    SenderPublicKey              string
    Signature                    string
    Timestamp                    int64
    Value                        uint64
  }
  - The data structure for transaction request is:
  TransactionRequest {
    Inputs    []InputRequest
    Outputs   []OutputRequest
    Timestamp int64
  }

Feature

Bug Fixes

  • node: input public key is not verified against output address (#245) (5537c18)
  • node: blocks requests are not parallelized (#234) (c2b42a8)

Chores

  • dependencies: bump github.com/ethereum/go-ethereum from 1.10.23 to 1.12.1 (#232) (fb89d91)

doc