Releases: rubixchain/rubixgoplatform
v0.0.19
Release Notes
We, at Rubix, are delighted to share this release with the introduction of two new Native Assets!
Fungible Tokens
Fungible Tokens (FT) are secondary tokens on Rubix which unlocks opportunities to implement various use-cases including community-driven projects, Real-World Asset Tokenization and Decentralized AI to name a few.
FTs can be thought of as individual units, similar to the conception of RBT. The foundation of these tokens stems from RBT. For creation of FT, one needs to lock a certain number of RBT tokens. The locking process of RBT is irreversible. For instance, if 1 RBT is locked in favor of minting 100 FT units, then each FT unit will have a value of 0.01 RBT. In this way, these FTs are governed by the security and economic layer of RBTs.
To know more about Fungible Tokens, refer the docs here
Non-Fungible Tokens
Non-Fungible Tokens are introduced as Native Assets in Rubix which represents an underlying asset. They could be Real World Assets (RWA), Unique Access Tokens, Digital Collectibles, etc. These are properties which have an ownership aspect, along with other paradigms like regulatory restrictions, time-based usage, etc. Rubix offers the flexibility to make any file or archive as a native NFT.
Interaction with NFT on Rubix is free. The minting of NFT involves a pledge of 1 RBT from Quorums, while in case of NFT Ownership transfer, the pledge value depends on the Sale value of the NFT.
To know more about Non Fungible Tokens, refer the docs here
Changelog
- 155f54c Add Error handling for
updateFTTable()
- 57d164a Add TODO comment
- 2c43e2a Add api : list-nfts-by-did
- d5688f1 Add api: /api/fetch-nft and command : fetch-nft
- b84225f Add api: /api/get-nfts-by-did and command get-nfts-by-did
- 38e4866 Add auto-subscription of smartcontract while deploying
- 4fb5eb9 Add command execute and deploy nft
- 5d79812 Add error handling for
updateFTTable()
- 1dee387 Add functions and variables for implementation of FT
- 759b365 Add functions for FT consensus
- e5a12b0 Add input param validation of FT functions
- 3141578 Add new key, nftData
- 5892e48 Add nft basic structure [WIP: Breaking]
- 6882df1 Add nft deployment and execution
- 6a07e65 Add nftdata key in decode token chain
- 78ffc65 Add swagger and minor fixes
- 22b7d57 Adding TC dump decoder
- 458779c Adding the testnet bootstrap to configurations
- bbefd50 Adding tokenchain decoder for tokenchain dump
- 7b68a42 Change api list-nfts-by-did to list-nfts
- 3b5218c Change execute-nft -> transfer-nft
- 70957bf Change in createFT input param error handling
- bafd2af Code cleanup
- 23c47b9 Expanding TC decoder to SmartContracts
- a5178e7 Fix : Did not checked while creating smart contract token
- ed17072 Fix : Error message not returned properly
- 7a1f1fc Fix : did not updated in NFTTable if subsrcibed before deploying nft
- a7fe2f8 Fix : nft file name not proper while executing
- fb67218 Fix typo
- bb4028e Fix: Generate Smart Contract command giving smart contract token hash in response
- 905a11a Fix: Receiver NFTTable updation issue
- 98dfe5a Fix: Smart contract token hash not returned
- 1aed3ea Fix: block-key mismatch
- a038f2a Fix: nft hash not returned
- dee1fd3 Fix: nft owner not updated
- 912f549 Handle error and a minor fix
- c277e9f Merge branch 'development' into arnab/fix-transfer-between-self-dids
- b9a7f22 Merge branch 'development' into maneesha/fp-flag-error-handling
- e99edcc Merge branch 'development' into maneesha/tokenchain-validation
- 4262d5c Merge branch 'development' into maneesha/tokenchain-validation
- e798791 Merge branch 'development' of https://github.com/rubixchain/rubixgoplatform into arnab/fix-transfer-between-self-dids
- ed25656 Merge branch 'development' of https://github.com/rubixchain/rubixgoplatform into arnab/fix-transfer-between-self-dids
- b2f3b0f Merge branch 'development' of https://github.com/rubixchain/rubixgoplatform into gklps/tokenchaindumpdecoder
- 1b08731 Merge branch 'development' of https://github.com/rubixchain/rubixgoplatform into maneesha/tokenchain-validation
- 10e8a15 Merge branch 'development' of https://github.com/rubixchain/rubixgoplatform into maneesha/tokenchain-validation
- a7b7130 Merge branch 'vaishnav/feature/ft' into development
- ceb6594 Merge pull request #185 from rubixchain/maneesha/tokenchain-validation
- 90ab0ca Merge pull request #190 from rubixchain/gklps/tokenchaindumpdecoder
- 9c568f0 Merge pull request #207 from rubixchain/arnab/fix-transfer-between-self-dids
- 748c256 Merge pull request #210 from rubixchain/gklps/tokenVerificationEnh
- 396fa2e Merge pull request #212 from rubixchain/maneesha/fp-flag-error-handling
- 9b99373 Merge pull request #213 from rubixchain/maneesha/maintain-GoStandard-CamelCase
- 90be7e7 Merge pull request #215 from rubixchain/hari/remove-pwd-from-bipseed
- 664957f Merge pull request #224 from rubixchain/hari/mnemonic-filepath-handler
- 96c6ed1 Merge pull request #226 from rubixchain/fix/allen/smartcontract
- 20f40e3 Merge pull request #229 from rubixchain/feature/allen/nft
- 7603639 Merge pull request #232 from rubixchain/sai/update-swagger-params
- 737614d Merge pull request #235 from rubixchain/arnab/fix/add-missing-code-block
- bb2471b Merge pull request #236 from rubixchain/sai/resoving-fetchsmartcontract-api-error
- e8d0bbe Merge pull request #239 from rubixchain/arnab/nft-self-exec-fix
- 5a27785 Merge pull request #241 from rubixchain/fix/allen/nft
- 8544ae1 Merge pull request #246 from rubixchain/fix/allen/get-nft-list
- 98246d5 Merge pull request #254 from rubixchain/fix/allen/auto-subscribe-sc
- eb28f85 Merge pull request #256 from rubixchain/ashi/TestNetBootstrapUpdate
- 3edb68e Merge pull request #258 from rubixchain/allen/fix/add-new-nft-apis
- 1cd5307 Merge pull request #260 from rubixchain/feature/allen/nft-command-update
- cdb635d Merge pull request #269 from rubixchain/ashi/TestSwarmKey_add
- 50c1916 Merge pull request #272 from rubixchain/arnab/fix-nft-transfer-between-different-nodes
- 39ead92 Merge pull request #273 from rubixchain/arnab/fix-same-peer-did-ft-transfer
- ccddf80 Merge pull request #274 from rubixchain/arnab/bump-version-number
- f97220b Merge pull request #275 from rubixchain/development
- 3b98b29 Merge remote-tracking branch 'origin/development' into vaishnav/feature/ft
- f3d0b0f NLSSshare as NLSSShare
- 385b1dc Refactor : createNFT
- 7c79291 Refactor nft file in ipfs & Fix db update
- f82aaf5 Refactor: transfer-nft -> execute-nft
- 7a0aa0a Remove comments
- fb27451 Remove peerID.DID formatting
- a77810d Remove unwanted debug logs
- b064918 Remove unwanted log and print statements
- 9d164a5 Rename get-nft-token-chain -> dump-nft-token-chain
- 9b758f3 This commit will enable decode tokenchain
- a13acf6 Token Verification Client Enhancements
- 39a8aef Update FT consensus
- f5278e2 Update command description for NFT
- 5ec02cc Update in FT consensus
- 87027be Update in FT params and fix typo-errors
- 71672f4 Update in FT tokenchain.
- a14b5ed Update in commad help
- 6214a93 Update in createFT error handling
- f8d0ede Update in createFT input param type
- 10fa008 Update in tokenstate hash updating functions
- 9739751 [skip actions] fixed comment
- 5dda916 added 'epoch' in keyMapping
- 7b4598f added check to skip FT transfer update SQL DB if both Sender and Receiver belong to the same node
- cd71db6 added test cases for with & without fp flag
- 5ffd9dd added validation for trans types: pledged, unpledged and contract committed
- 17f0e77 bugfix: fixed self execution flow for NFT where the NFT value is fetched from NFTTable
- 3f76df5 bumped version from 0.0.18 to 0.0.19
- 6374cc5 changing snake_case to camelCase
- 4f53fde code changes to resolve the fetch smartcontract API error.
- 9a30601 committing changes according to the suggestions in the review
- 162fba1 correcting invalid parameters of the register call back URL API's swagger doc.
- 8ef31b2 exit if mnemonic file not found
- 4ca68d3 fix: added a condition which checks the DIDTable to see if the receiver DID is local to sender DID's peer
- 9a4d4d4 fix: re-added block to notify previous quorums to remove trans tokens from TokenStateHash table that have their token state exhausted
- b829226 fixed multi-node NFT transfer scenario where the NFTTable on the receiver's end was not updated with correct DID and NFTValue inputs; added the NFT subscription function under NFT Deploy function where the Deployers will subscribe to NFT by default
- 73a2174 fixed FTTokensTransffered function by including a param which indicates whether the Receiver and Sender are same
- a80e65d fixed did info in addpeerdetails command
- 8203fe4 fixed receiver peerID assignment
- 79719dc fixed swagger description for NFT APIs; fixed updates to NFTTokensTable
- 369c383 fixed transfer of RBT tokens between DIDs that are present on the same node by adding a validation rule to check for receiver's DID in DIDTable following the DIDPeerTable check
- f15c8f0 fixed transfer of rbt between DIDs when either is present on a Quorum node
- e22f2a3 handling errors and unnecessary flags
- 0069c85 handling quorum password in setupquorum for lite mode did
- d361159 handling setupquorum in lite mode
- 7593733 handling validation of synced tokenchains
- d0b1960 improvement: did_type associates with did
- 2ef7db3 improving error handling
- cfbbf3c optimized tests for fp flag
- 2e8006e python test script added for force-passwords
- d514172 readme update
- cbeec76 refactor: handled missing errors; fixed the return of UpdateTokenStateHash API by passing an empty struct
- b8dc9d3 remove -privPWD from bip seed creation
- 43725d9 removing extra debug statements
- beaaa7f removing recurring validations and updating smart contract validations
- ...
v0.0.18
Release Notes
Periodic Pledging
In this release, we have replaced the current pseudo Proof-of-Work based unpledging with Periodic Pledging. This feature will provide a better tokenomics for pledge validators allowing them to quantify the expected returns with respect both time and space factors.
Time based Pledging
For each transaction, Quorums pledge tokens for a period of 7 days. After this period, the Quorums can unpledge their tokens via the CLI/API. Upon successfully pledging for 7 days, the Quorums earn a credit. If the transaction tokens experience a state change before 7 days, the pledged tokens become eligible for unpledging, and the credits earned are proportional to the number of days the tokens were pledged.
CLI:
./rubixgoplatform run-unpledge -port <server node port>
API:
POST: /api/run-unpledge
Params: No params
While transferring tokens, the sender informs the previous quorums to unpledge the previous token state, since the new quorums who are validating the current transactions, are going to Pin this state. The previous quorums, upon receiving this message from sender, proceed the remove the related records from TokenStateHash
table.
Whenever the unpledge process is executed, we loop through the UnpledgeSequence
table and for each transaction, we check if the records (associated with the transaction id) are present in the TokenStateHash
table. If yes, then we proceed to unpledge tokens. If no, then we skip it.
Quorums can use the following commands to check all pledge tokens and their respective TokenStates that they have pledged for, as well as, check if a particular token state is exhausted or not.
Query Pledge Token States:
CLI:
./rubixgoplatform getpledgedtokendetails -port <server node port>
API:
GET: /api/get-pledgetoken-details
Params: No params
Check if Token State is Pinned:
CLI:
./rubixgoplatform checkpinnedstate -tokenstatehash <Token State Hash> -port <server node port>
API:
DELETE: /api/check-pinned-state
Query Params:
- tokenstatehash: Token State Hash
Self Transfer
To ensure continuous pledging for transaction tokens and the pinning of their token states after the 7-day pledge period, we have introduced the concept of Self Transfer. This is a pseudo state change where the sender and receiver are the same. Since it is treated as a transaction by the protocol, Quorums proceed to pledge and pin the previous state of the transaction tokens. This is an externally triggered process.
The CLI and API structure is similar to a general RBT token transfer, except that only the sender's DID and transaction type need to be provided.
CLI:
./rubixgoplatform self-transfer-rbt -senderAddr <sender DID> -transType <transaction type> -port <node server port>
API:
POST: /api/initiate-self-transfer
Request Body:
{
"sender": "<sender DID>",
"type": "<transaction type>"
}
NOTE: Similar to the RBT Transfer API (/api/initiate-rbt-transfer
), you need to call the Signature Response API (/api/signature-response
) after calling the Self Transfer API
Unpledging of PoW-based pledge tokens
Since we are moving away from psuedo PoW-based pledging from this version, we have introduced a CLI/API to unpledge those tokens which were pledged as part of PoW-based pledging. This CLI/API loops through all tokens present in unpledgequeue
table (if present) and unpledges them by adding an unpledge block to the tokenchain and changing their status in TokensTable to Free
, following which the unpledgequeue
table is dropped. Henceforth, information about new pledge tokens are reflected in the new UnpledgeSequence
table.
CLI:
./rubixgoplatform unpledge-pow-pledge-tokens -port <node server port>
API:
POST: /api/unpledge-pow-unpledge-tokens
Params: No params
Account Recovery
We have introduced the following features which come together to facilitate Account Recovery
Importing BIP-39 based DIDs through Mnemonic
When a DID is created using the BIP-39 mode, the mnemonic is usually stored in the respective DID's directory as a .txt
file. Users can take backup this mnemonic, and at any point of time can regenerate/import the DID using the same mnemonic string.
Inorder to recover DID and key pairs, backup the mnemonickeyfile in a seperate folder and call createdid with -didType 4 -mnemonicKeyFile /pathtomnemonickeyfile. This will create the same master key and key pairs.
./rubixgoplatform createdid -didType 4 -mnemonicKeyFile mnemonic.txt
Pinning Service
The pinning service enables token owners to pin their tokens on a pinning node on their behalf. The token's ownership remains unchanged; however, the pinning node will have all the information about the pinned token and its token chain. This is an important step towards protocol adoption in Lite nodes (Mobile , IoT like devices that doesnt either remain online all the time or have storage constraints). The pinning service also brings an oppotunity for our community to build a delegated Proof-of-Pledge algorithm , where even Lite nodes can earn partial credits.
For Pinning Token on User's Behalf:
CLI:
./rubixgoplatform pinToken -senderAddr <sender DID> -pinningAddress <Pinning DID> -transComment <comment> -transType <transaction type> -port <node server port>
API:
POST: /api/initiate-pin-token
Request Body:
{
"pinningNode":"<Pinning DID>",
"sender":"<Sender DID>",
"comment":"<Comment>",
"type": <Transaction Type>,
"password":"<Password>"
}
For Token Recovery:
CLI:
./rubixgoplatform recoverToken -senderAddr <Sender DID> -pinningAddress <Pinning DID> -port <node server port>
API:
POST: /api/recover-token
Request Body:
{
"pinningNode": "<Pinning DID>",
"sender":"<Sender DID>"
}
Manual Peer detail registeration and Address format change
To transfer a token to a receiver, the sender must now manually add the receiver and type 2 quorum details by providing the PeerID, DID, and DIDType. This can be done either through a direct API call or via the CLI. Manually adding these details ensures that only the required peers are included, as opposed to populating the database with all peers in the network, which was previously done through RegisterDID. The addition of peer details should be performed when a node is connecting to the peer node for the first time..
CLI:
$ ./rubixgoplatform addpeerdetails -port 20006
Enter PeerID : 12D3KooWQ2as3FNtvL1MKTeo7XAuBZxSv8QqobxX4AmURxyNe5mX
Enter DID : bafybmicro2m4kove5vsetej63xq4csobtlzchb2c34lp6dnakzkwtq2mmy
Enter DID Type : 4
2024-05-22T16:41:02.681+0530 [INFO] Main: Peer added successfully
$ ./rubixgoplatform addpeerdetails -port 20006 -peerID 12D3KooWQ2as3FNtvL1MKTeo7XAuBZxSv8QqobxX4AmURxyNe5mX -did bafybmicro2m4kove5vsetej63xq4csobtlzchb2c34lp6dnakzkwtq2mmy -didType 4
API:
POST: /api/add-peer-details
Request Body:
{
"peerid": "12D3KooWJUJz2ipK78LAiwhc1QUVDvSMjZNBHt4vSAeVAq6FsneA",
"did": "bafybmics43ef7ldgrogzurh7vukormpgscq4um44bss6mfuopsbjorbyaq",
"didtype": 0
}
There has been change in address format from PeerID.DID
to DID
.
When a node, say Alice, connects to another node, Bob, to check Bob's peer status (using the getPeer
function) or to fetch Bob's DIDType for token ownership validation (using the GetPeerdidType_fromPeer
function), Alice will now share her details (PeerID, DID, and DIDType) through the same API used for fetching Bob's status or DIDType. Bob will register or update Alice's details in the SQLite database in the DIDPeerTable if they are not already registered or need updating. This improvement will streamline peer connections and reduce the extra work of manually registering peers.
Distributed Pledging
During a transfer, the pledged amount from each quorum varies based on the availability of tokens within that quorum. To ensure equal participation, the total pledge amount is divided equally among all quorums, resulting in the same pledge amount for each. If the division of the pledge amount by the number of quorums results in a value with more decimal points than allowed, the value is rounded up to the maximum permitted decimal places. For instance, a pledge value of 0.1234 would be rounded to 0.124.
Adding Initiator Signature to block structure
An initiator is the one who is initiating the transaction, in case of RBT transfer it is the sender, in case of smart contract deploy it is the deployer and in case of smart contract execution it is the executor. This feature will include any initiator's signature in the corresponding block. Here we are adding Initiator Signature
to the token chain block where the details include the following fields:
NLSS_share
: sender's NLSS private sharePrivate_sign
: sender's signature using private key (BIP sign in case the sign version is 0)DID
: sender didHash
: signing dataSignVersion
: 0, if signed using BIP signing scheme, and 1, if signed using NLSS signing scheme
The numeral key assigned to the Initiator Signature field is "12". Shown below are the structures of an Initiator Signature in a block in a dumped token chain in different scenarios.
RBT Transfer:
Basic mode sender did with NLSS signature:
"12": {
"priv_signature": "3045022100a90a64b973b8e554e4a5ac2f5871e61a83a4d6b5e5bae426ba67d4d9225df1bf0220555082162a26d09bd9ff577848ebae7e1e5c2fe03e39958db0bc7360d2d54fb9",
"nlss_share_signature": "2d03e9391693e33ac2069393aca7d1bfbe94ac0c360e36afa60e7b3ea4e3bf6f",
"hash": "65d59f427887858a493604d4df8b601cef1ee33c20e361828f22b94c3bc8ff97",
"sign_type": 1,
"initiator_did": "bafybmifvz3lez6...
v0.0.17
Release Notes
Support for BIP-39 Specification for DID Creation
Support for creating DIDs using BIP-39 specification has been added. Creation of DID is much quicker compared to NLSS scheme, as the cryptographic keys are generated using a 24-word mnemonic, while the time complexity for later is O(n3). The use of mnemonic also makes account recovery possible.
Following is the command to create a DID using the BIP-39 specification:
./rubixgoplatform createdid -didType 4
7-Quorum Node Transaction fail Fix
It was observed that, in a 7 quorum nodes setup, if the pledging node happens to delay the submission of its signature, the consensus would proceed with other 5 quorums nodes, resulting in the failure of the transaction. A fix has been administered to ensure that Pledging quorum's signature is included in the Singature set.
Test Framework
A set of test scripts written in Python, have been added for testing scenarios related to RBT transfers. A Github workflow is added which runs these tests in Linux, Windows and MacOS environments, once a PR is raised to development
or main
branch
Changelog
- 59913ce 7 quorums fix
- 31e07b6 Adding readme and updated printing format
- 6060d25 BIP keys encoded and sign check
- aa16317 BIP sign version updated
- 47c4b45 Create LICENSE
- 1a77d68 Created Light mode for PKI based signature
- 0da1640 Merge branch 'development' into ashita/7quorumsFix
- f3d48cd Merge branch 'development' into ashita/7quorumsFix
- d080334 Merge branch 'development' into hari/bip39-integration
- 7d7c550 Merge branch 'development' into hari/bip39-integration
- 3806ae6 Merge branch 'development' of https://github.com/rubixchain/rubixgoplatform into arnab/tests
- af86f55 Merge branch 'development' of https://github.com/rubixchain/rubixgoplatform into arnab/tests
- f6a06a2 Merge branch 'development' of https://github.com/rubixchain/rubixgoplatform into ashita/7quorumsFix
- 8d4cc49 Merge branch 'hari/bip39-integration' of https://github.com/rubixchain/rubixgoplatform into hari/bip39-integration
- 5a20ac5 Merge pull request #138 from rubixchain/hari/bip39-integration
- 78f1ab6 Merge pull request #141 from rubixchain/ashita/7quorumsFix
- 6c44878 Merge pull request #151 from rubixchain/arnab/tests
- 6d01309 Merge pull request #156 from rubixchain/hari/license-info
- 6dc08cf Merge pull request #164 from rubixchain/arnab/bump-version-number
- c0ceeec Merge pull request #165 from rubixchain/development
- a7cb842 Merge pull request #166 from rubixchain/arnab/gitignore-merge-conflict-fix
- ef0ef4d Merge pull request #167 from rubixchain/arnab/solve-merge-conflict
- 0e8dd5d Merge pull request #168 from rubixchain/arnab/hotfix/add-release-workflow-files
- cddac43 Merge pull request #89 from rubixchain/maneesha/PKIsign
- 87e899e Merge pull request #91 from rubixchain/hari/slipkey
- f0bdf57 Merge pull request #92 from rubixchain/ashita/explorer-url
- 5a29e51 Merge pull request #96 from rubixchain/hari/determintistic-ecdsa
- 9bdce0d Mnemonic file added
- 1df0779 NLSS verification updated in light mode
- 299d7c7 Nlss Backward Compatible
- dba88e5 [skip actions] Added
dist/
in.gitignore
- c5f424c [skip actions] update
- 204d340 added OS alias in artifact name
- 9ee397d added checks and instructions to support execution in windows os
- 56b19fd added dockerfile for running tests in ubuntu-amd64 environment
- 0f56783 added entry for .sh file extension
- 90d50f5 added func to get the build dir based on the target OS
- 698929a added methods to generate master and child keys
- 316ea9a added node_registry.json config to list all the node server indeces; run_non_quorum_nodes is removed
- dca12e5 added script to collect all quorum and non-quorum logs; added step in test workflow to upload the node logs as artifacts in Github Action sessions
- 8c4818f added test scenario for BIP39 and NLSS transfers
- 71b5e4c added timestamp for node log artifacts
- e9262f3 adding release github action files which were removed while merging PR #151
- d88e182 bip39
- 446824a bip39 integration
- 880319f bip39 modification and minor fixes
- 4fe4b00 bip39 update
- 746b3f2 bump rubixgoplatform version to 0.0.17
- 596e0d5 changed test swarm key
- f98fa98 changing variable and function names
- 7f28f4f comments added back
- 98d2f4d comments edited
- ce7cc90 compatibility with old wallets
- 5353f21 created three swarm keys for each os environment
- 763be72 deterministic ecdsa using go 1.19 legacy
- ec10991 did created successfully
- 757b285 feat: added API endpoint and CLI command to fetch a node's peer ID
- c0e07e5 feat: added python tests for RBT transfer
- 78d03f4 feat: added test workflow
- f4db465 fix for unpledging of tokens and 7 quorums
- 644dac4 fix light mode directory issue
- 57caa15 fixed BIP key gen BIPsign BIPverify
- a18ecd0 fixed bugs for to reduce waiting time
- 07a3db4 fixed occupied port and peer connection issue
- 92f859c fixed port unavailability
- 30bafad increased node liveness wait time to 40 seconds
- fa373cf merge conflict fix
- 27b1816 merge conflict fix
- a2479fa modularise fucntions
- d43d21f non quorums DIDs are now being registered for the RBT transfer transaction to happen successfully
- 061dcdc not appending sign version to Txn ID
- e587be8 paramterise bip child path
- d8b8aef ping peer to get peer did type
- 0ffbfc7 reduced node liveness wait time from 60 seconds to 15 seconds
- 9cba0ff refactor: added DID id string while a DID is being created using the CLI command; merge conflict fix
- 0ee0b5b removed a file
- 1539d2b removed comments
- 973d5c8 removed unneeded print statement
- f001866 removing changes on port unavailability issue
- 261d5b5 renamed test workflow artifiacts name
- 891864c sending transactions to explorer
- 43cc355 sign version added
- 68e1a9b sign version check
- 99cdbf1 succesful testRBT transfer in light mode
- d1cd6ff tested port-unavailability-fix on MacOs
- 8eadd96 updated Readme
- b74f84d updated go.mod
- b3e4b4a url prefix check
v0.0.16
Release Notes
New Feature: Alternative Quorum System
We are excited to introduce the new Alternative Quorum System in this release. This system acts as a backup validator when primary quorums are busy or offline, ensuring continuous operation and reliability of our network during high traffic periods or unexpected downtimes.
Core System Enhancements:
- Core Private Share Signing: Enhanced security protocols with the implementation of core private share signing.
- Token Transfer Initiations: Enabled smoother and more secure token transfer capabilities.
Transaction Handling Improvements:
- Transaction History Tracking: Developed comprehensive tracking to provide users with detailed transaction insights.
- Pledge Token Checks: Integrated new checks to ensure the authenticity and security of pledge tokens.
Wallet and Consensus Enhancements:
- Initial wallet functionalities and consensus code have been integrated, significantly improving platform robustness and user experience.
Development and Build Process Updates:
- Mac Configuration Support: Extended system build process to include configurations for Mac users.
- MakeFile and gitignore Revisions: Updated development settings for better management and efficiency.
Security and Service Enhancements:
- Token Authenticity Measures: Integrated measures to ensure token integrity and authenticity.
- Multi Pinchecks for Tokens: Implemented multiple security checks for enhanced token safety.
Smart Contracts and Network Operations:
- New features to boost smart contract capabilities and introduced a public subscription model for contracts.
- Optimized peer discovery processes and introduced a new quorum selection mechanism, enhancing network security and efficiency.
Bug Fixes and Optimizations:
- Addressed Linux path issues during migration, wallet mode changes, and made batch size adjustments for optimal performance.
- Refined threading models and updated proof verification mechanisms to streamline operations.
Documentation and UI Updates:
- Extensive updates to system documentation and user interface details to improve user accessibility and understanding.
Additional Enhancements:
- Improved IPFS repo management, migration processes, and streamlined token management.
- Introduced cryptographic enhancements to bolster security, and continued updates to keep pace with technological advancements.
Changelog
- f413da3 Add api and cmd : quorum-setup-check
- ff5f296 Add function moveFile
- c59c5fb Add proper error messages
- c02cc86 Fix : Consensus request to selected quorums only- Alternate Quorums
- 21df7cb Fix : Consensus request to selected quorums only- Alternate Quorums W/O comment
- 2ba45ce Fix: Quorom Status Check [Working]
- aa31ef9 Fix: flag quorumAddr not found [Add debug : WIP-Breaking]
- fb852b0 Fix: minor typo
- 876b418 Merge pull request #143 from rubixchain/allen/fix/smart-contract-rename-issue
- dbb2d86 Merge pull request #146 from rubixchain/ft/quorum-setup-check
- ae60718 Merge pull request #147 from rubixchain/development
- b23a852 Merge pull request #148 from rubixchain/ft/quorum-setup-check
- 2ddd268 Merge pull request #149 from rubixchain/development
- 617ff4e Remove hardcoded quorum count
- 7608b2a Update quorumlist to support Alternate quorum
v0.0.15
Release Notes
Changelog
- ff8745c Add TokenProviderMap to exixsting functions and refactor existing broken functions
- d0ce18f Add changes to struct TokenProviderMap [WIP:breaking]
- 24e5825 Add new role: ParentTokenPinByQuorumRole
- 392dec1 Add pin parent token in quorum side while transferring part token
- a879b98 Add token value to TokenProviderMap struct
- 3fe3d46 Fix minor typo
- 37b970c Fix: Change WholeTokenSplitLockRole to quorumRole
- 6fbd32b Fix: Corrected issue preventing proper addition of details
- 62c8660 Merge branch 'development' into kiran/bugfix/PinCheck
- f2ad325 Merge branch 'main' into gklps/pingcheckfix
- f9c2e14 Merge pull request #122 from rubixchain/development
- 756e2d4 Merge pull request #124 from rubixchain/kiran/bugfix/PinCheck
- 37e4520 Merge pull request #125 from rubixchain/gklps/pingcheckfix
- 50fdb87 Merge pull request #126 from rubixchain/gklps/pingcheckfix
- 924e80d Merge pull request #128 from rubixchain/gklps/pingcheckfix
- bf2c7bd Merge pull request #129 from rubixchain/development
- bf8c969 Merge pull request #131 from rubixchain/arnab/error-log-tokenchain-reciever
- 8fc875e Merge pull request #133 from rubixchain/kiran/fix/releasetokesn
- 7e279b0 Merge pull request #134 from rubixchain/development
- 801fc38 Merge pull request #135 from rubixchain/arnab/github-actions
- bc18ff1 Merge pull request #136 from rubixchain/arnab/part-token-transfer-fix
- a9b4b85 Merge pull request #137 from rubixchain/arnab/parent-child-token-info
- 756b357 Merge pull request #140 from rubixchain/feat/allen/pincheck
- b6cea85 Merge pull request #145 from rubixchain/development
- d35b259 Pincheck issue fix
- 4e39a9d bug fix release all tokens
- 9b399f4 bump version number
- ed45106 feat: add release Github Action workflow
- 882f278 feat: add token value and child token list information in TokenChainBlock
- cbf5ccb fix release Locked Tokens
- bc5177a fix: error occuring while transfering RBT with fractional component, while the sender only having whole tokens is fixed by routing this case to GetTokens func
- 201ad27 handling non connected peer in Pincheck
- 4380483 log update
- 53bf664 mainnet sync fix
- a18a5dd port fix
- eea62c3 releasse locked Tokens
- 6599c96 renamed childTokenList attribute to childTokens
- 7a6b74a required tokens whole token fetch logic update
- c25f6a4 version 14
v0.0.14
Release Notes
What's Changed
In this release, we introduced a new core system, initiated token transfers, and implemented core private share signing. Significant enhancements were made to transaction handling, including the development of transaction history tracking and pledge token checks. We've also added the initial wallet and consensus code, improving the platform's robustness.
Updates to the system's build process now support Mac configurations, along with revisions to the MakeFile and gitignore settings. Service enhancements were made, including the integration of token authenticity measures. Multi pinchecks for tokens have been developed, along with a variety of features focused on smart contracts, peer discovery, and quorum selection.
We tackled several bugs and made optimizations across the board. This includes fixes for Linux path issues during migration, wallet mode changes, and batch size adjustments for improved performance. The threading model for token pinchecks was refined, along with updates to proof verification mechanisms. A new feature for fetching transaction details by various identifiers was introduced, significantly enhancing user interaction with the platform.
This update also saw improvements in IPFS repo management, migration processes, and token handling mechanisms. We've streamlined parts token management, and made extensive updates to the system's documentation and user interface details.
Several new features have been rolled out, focusing on enhancing smart contract capabilities, and introducing public subscription models for contracts. Our peer discovery processes have been optimized, along with a new quorum selection mechanism that enhances the overall security and efficiency of network operations.
Furthermore, we've reduced dependencies, introduced cryptographic enhancements for better security, and provided updates to keep our platform ahead of technological advancements.