-
Notifications
You must be signed in to change notification settings - Fork 0
coiniXerr
a coiniXerr node is a distributed network follows p2p pub/sub pattern. a transaction can be sent through aTCP or an RPC stream from the walleXerr encoded with cap'n proto serialization. Each coiniXerr node is an actor contains a unique keypair and a peer_id in the whole network. once the transaction has received asynchronously and simultaneously they must be signed in order to send them through the mpsc job queue channel to down side of the mempool channel for mining and verifying process and relatively for all users to have a successful transfer. They can only be signed as long as the receiver of the transaction channel or the mempool is waiting for the new transaction and if the receiver was not able to receive caused by a sudden shutdown, dropped sender (caused by joining the thread contains sender to stop the task from being processed in background) and timeout or deadline issue that transaction will not be signed and the transfer process won't be a successful event. of course if the transaction is not signed means there will be no mining process cause the receiver is not waiting to receive anything from the sender to put them in a block for mining. The main structure of the coiniXerr network is its parachains in which every parachain is an actor and has its own blockchain stuffs and an special field called slot in which every 5 seconds a reset task will be scheduled to be executed on the selected parachain to reset all its feilds by a successful auction process by the coiniXerr validators. It must be mentioned again that each parachain and validator is an actor that can communicate with each other by sending an structured message, also there are channels related to parachain and validator actors used to broadcast new transaction income, update a specific validator and parachain state, new validator and parachain joined and block mining process message events to related subscribers. All subscribers of the mentioned channels which are interested on a specific topic must support the meesage event of the topic in their structure in order to be able subscribe to that topic. Ed25519 is being used instead of ECDSA as the public-key (asymmetric) digital signature encryption to generate the wallet address keypair the public and private keys; like solana the hash of the public key is being used to generate the wallet address also we MUST use the public key for transaction signature verification; the private key on the other hand will be used to sign transaction data (tx data MUST first serialized to an array of utf8 bytes) finally for the transaction, block and merkle root hash and generating wallet address (hash of the public key) Argon2 is being used as the KDF method. I've dropped the first 27 bytes from the generated Argon2 hash to generate a real hash for the transaction, block and merkle root.