Skip to content

Releases: my-cloud/ruthenium

v4.1.0

14 Nov 09:26
2750101
Compare
Choose a tag to compare

4.1.0 (2023-11-14)

Feature

v4.0.0

27 Oct 13:03
Compare
Choose a tag to compare

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

v3.0.1

12 Mar 17:00
44fc98a
Compare
Choose a tag to compare

3.0.1 (2023-03-12)

Bug Fixes

  • p2p: the main network is not single port scoped (#210) (44fc98a)

Documentation

Chores

  • dependencies: bump golang.org/x/crypto to 0.1.0 (#219) (63963ab)

v3.0.0

25 Feb 01:43
a1dd480
Compare
Choose a tag to compare

3.0.0 (2023-02-25)

Breaking Changes

  • node: rename last blocks request field (#207) (a1dd480)

BREAKING CHANGE: The endpoint for getting the last blocks has changed.
* the request value to get last blocks was:
LastBlocksRequest {
  StartingBlockNonce int
}
* the request value to get last blocks is now:
LastBlocksRequest {
  StartingBlockHeight uint64
}
  • validation can be stopped without verification (#204) (5af0c3a)

BREAKING CHANGE: remove start and stop validation node and UI API endpoints.
  • ui: private key is sent via http request (#201) (aa551f3)

BREAKING CHANGE: remove POST /wallet, add GET wallet/address, change POST /transaction request value.
* the request value to POST a transaction was:
TransactionRequest {
  SenderPrivateKey string
  SenderAddress    string
  RecipientAddress string
  Value                    string
}
* the request value to add a transaction is now:
TransactionRequest {
  Fee                       uint64
  RecipientAddress string
  SenderAddress     string
  SenderPublicKey  string
  Signature             string
  Timestamp           int64
  Value                    uint64
}
  • node: use bytes data transfer encoding (#199) (b554b1c)

BREAKING CHANGE: replace data transfer encoding from Gob to bytes
  • node: there is no incentive to respect gossip protocol (#197) (9b7f3ab)

BREAKING CHANGE: The endpoint for adding a transaction has changed.
* the request value to add a transaction was:

TransactionRequest {
RecipientAddress string
SenderAddress string
SenderPublicKey string
Signature string
Timestamp int64
Value uint64
Fee uint64
}

* the request value to add a transaction is now:

TransactionRequest {
Fee uint64
RecipientAddress string
SenderAddress string
SenderPublicKey string
Signature string
Timestamp int64
TransactionBroadcasterTarget string
Value uint64
}

Documentation

Chores

CI

v2.1.5

31 Jan 15:41
e715251
Compare
Choose a tag to compare

2.1.5 (2023-01-31)

Bug Fixes

  • node: registered addresses might become too big (#195) (e715251)

v2.1.4

31 Jan 13:03
d7ee5b6
Compare
Choose a tag to compare

2.1.4 (2023-01-31)

Bug Fixes

  • node: total amount verification is wrong (#194) (d7ee5b6)

v2.1.3

31 Jan 12:28
f5e8f49
Compare
Choose a tag to compare

2.1.3 (2023-01-31)

Bug Fixes

  • node: requesting last blocks corrupts the blockchain (#192) (f5e8f49)

v2.1.2

27 Jan 16:19
f7d0ce3
Compare
Choose a tag to compare

2.1.2 (2023-01-27)

Bug Fixes

  • node: there is no minimal transaction fee (#190) (f7d0ce3)

v2.1.1

27 Jan 15:09
248ce9f
Compare
Choose a tag to compare

2.1.1 (2023-01-27)

Bug Fixes

  • node: transactions can be older than 1 block (#189) (248ce9f)

v2.1.0

27 Jan 12:42
22cacc0
Compare
Choose a tag to compare

2.1.0 (2023-01-27)

Feature