defi/nft/lp/dapp/dao代币发行合约流动性质押挖矿分红系统开发详情版(通缩销毁,锁仓限购,买卖回流,回购拉盘模式开发)

简介: When the peer node receives the input (propsal) requested by the client, it will send a chain code message object (with input information and caller information) to the corresponding chain code.

Fabric chain code interacts with peer node through gprc

When the peer node receives the input (propsal) requested by the client, it will send a chain code message object (with input information and caller information) to the corresponding chain code.

The chain code calls the invoke method in ChaincodeBase to obtain the ledger status information and send the pre submission status to the peer node by sending the getState and putState messages.

The chain code sends the final output result to the peer node, and the node endorses and signs the input (propsal) and output (propsalreponse) to complete the first signature submission.

After that, the client collects the first segment of the submission information of all peer nodes, assembles the transaction and signs it, sends the transaction to the orderer node for queuing, and finally the orderer generates the block and sends it to each peer node, and puts the input and output on the ledger to complete the second segment of the submission process.

Basis of chain code development:

The foundation of chain code development can be summarized as follows: one base class, two queries, and one write.

A base class: ChaincodeBase

In Java, ChaincodeBase is the contract base class of user-defined chain codes. The run (ChaincodeStub stub, String function, String [] args) method is the entry function for peer to call chain codes. An init method must be customized for contract initialization and upgrade initialization.

Because of its dynamic interface characteristics, GO does not need to specifically declare the implementation of the contract interface. However, two interface methods must be implemented:

▪ Init (stub shim. ChaincodeStubInterface): init is used for contract initialization and upgrade initialization;

▪ Invoke (stub ship. ChaincodeStubInterface): Invoke is the entry function of peer calling chain code; ChaincodeStub contains rich ledger operations, such as getCallerCertificate(), getState (k), putState (k, v), invokeChaincode (...), rangeQueryState (k1, k2), getTxId(), etc.

Two queries: getState (k) and rangeQueryState (k1, k2)

GetState (k) gets the value corresponding to a separate key.

RangeQueryState (k1, k2) gets all k-v objects that start with k1 and end with k2, and returns Map<String, String>objects, where k1 and k2 are sorted lexicographically.

One write: putState (k, v),

Write the data. It should be noted here that putState data will not fall into the ledger immediately. The data will not fall into the ledger until the second transaction submission consensus is reached.

Chain code development experience

  1. Store the business entity in Json mode and create an index on the key

Because there is only one key val status database, the data whose value is Json can be quickly parsed. The key is added with the value of some simple index fields, such as Pk_ TxId Transaction ID_ A field value to realize range query.

The leveldb used by the k-v library of the fabric, and the lexicographical order used by the inserted key values. Therefore, the index field values must have a fixed length, or call stub. rangeQueryState (k1, k2) for range query, and a heap of incorrect data will be taken out.

  1. The written data cannot be obtained immediately

The data written through putState will not fall into the ledger immediately. The data will not fall into the ledger until the consensus of all peer nodes in the second transaction is reached. Therefore, it is not possible to immediately obtain the previously written values, such as batch inserting data, using putState to write data, and then using the getState function to determine whether the primary key is repeated.

  1. Do the methods in the chain code need to be locked

unwanted. The peer node has implemented the message queue. The chain code messages sent to the chain code are executed sequentially, not in parallel.

相关文章
|
6月前
|
供应链 安全 区块链
Dapp/defi代币通缩燃烧销毁模式流动性LP质押项目系统开发
要理解智能合约的概念和作用,首先需要了解区块链的基本架构
|
6月前
|
存储 区块链
NFT卡牌代币质押DAPP系统开发|详情原理
去中心化应用是指基于区块链技术的应用,可以实现去中心化的数据存储和验证
|
算法 区块链
Defi+NFT质押流动性挖矿系统开发/LP质押挖矿功能开发解析
Defi+NFT质押流动性挖矿系统开发/LP质押挖矿功能开发解析
|
区块链
defi/lp/nft/dapp代币预售合约流动性质押挖矿开发正式版,defi/lp/nft/dapp代币预售合约流动性质押挖矿系统开发(方案及详细)
 智能合约(Smart contract)是依托计算机在网络空间运行的合约,它以信息化方式传播、验证或执行合同,由计算机读取、执行,具备自助的特点。而区块链的去中心化,数据的防篡改,决定了智能合约更加适合于在区块链上来实现
|
存储 IDE 搜索推荐
DeFi+NFT铸造质押借贷理财dapp系统规则详情|合约功能开发介绍
DeFi+NFT铸造质押借贷理财dapp系统规则详情|合约功能开发介绍
|
JavaScript 前端开发 UED
LSD赛道流动性挖矿dapp系统开发源代码|LP流动性质押分红模式定制详情
LSD赛道流动性挖矿dapp系统开发源代码|LP流动性质押分红模式定制详情
|
安全 区块链
NFT代币质押分红dapp系统开发案例功能定制分析
NFT代币质押分红dapp系统开发案例功能定制分析
|
JavaScript
dapp/lp/defi/nft流动性质押挖矿稳定版,dapp/lp/defi/nft流动性质押挖矿分红系统开发详细案例及功能
  Debit and credit voucher:When you deposit a token in Compound,you will get a credit voucher cToken.cToken is the ownership of the user's pledge token.You can exchange the original token and withdraw the corresponding profits in the Compound agreement.
|
边缘计算 5G 区块链
swap交易所代币合约流动性质押挖矿系统开发(开发案例)丨swap交易所代币合约流动性质押挖矿现成源码案例
 综合来看,技术方面,Web 3.0不仅是过往技术迭代,更是多项科技的集成,包括5G、VR、AR、区块链、云计算、芯片、边缘计算等。具体地来看,Web3.0技术可分为基础层技术、平台层技术、交互层技术。相较于Web2.0时代,Web3.0涉及细分技术类别更多、范围更广,其中区块链技术由于其去中心化的特征,成为Web3.0核心底层基础技术
|
人工智能 物联网 大数据
流动性质押挖矿分红系统开发案例源码,dapp/lp流动性质押挖矿分红系统开发技术说明及方案
现阶段,Web3.0处于早期发展阶段。由于web3.0具有“智能机器广泛参与到网络过程”的鲜明特征,所以Web3.0的发展将离不开云计算、大数据、人工智能、物联网、区块链等相关技术。而区块链技术是Web3.0最关键的技术。