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.

相关文章
|
8月前
|
存储 区块链
NFT卡牌代币质押DAPP系统开发|详情原理
去中心化应用是指基于区块链技术的应用,可以实现去中心化的数据存储和验证
|
安全 区块链
DAPP公链质押链上代币兑换LP系统开发模式方案
随着区块链技术的不断发展,DAPP的应用范围也在不断扩大
|
存储 安全 区块链
IDO预售代币合约质押项目系统开发方案指南
区块链是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储
|
存储 Java Shell
链上LP质押流动性代币分红dapp系统开发demo详情|方案设计|技术介绍
链上LP质押流动性代币分红dapp系统开发demo详情|方案设计|技术介绍
|
区块链
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流动性质押分红模式定制详情
|
边缘计算 5G 区块链
swap交易所代币合约流动性质押挖矿系统开发(开发案例)丨swap交易所代币合约流动性质押挖矿现成源码案例
 综合来看,技术方面,Web 3.0不仅是过往技术迭代,更是多项科技的集成,包括5G、VR、AR、区块链、云计算、芯片、边缘计算等。具体地来看,Web3.0技术可分为基础层技术、平台层技术、交互层技术。相较于Web2.0时代,Web3.0涉及细分技术类别更多、范围更广,其中区块链技术由于其去中心化的特征,成为Web3.0核心底层基础技术
|
区块链 数据库
defi/nft/lp/dapp/dao以太链/波场链/火币链/币安链发行合约代币流动性质押挖矿分红系统开发(稳定版)及代码部署
 智能合约与区块链的结合形成了智能合约法规自动执行系统,该系统有三个重要的原则:   首先,智能合约数据来源于链上。这是指智能合约的输入是从区块链的数据库里面出来的。这些数据是由区块链保证的,具有真实难以篡改的特征。
|
JSON 区块链 数据格式
DEFI/NFT/LP/DAPP代币合约流动性质押挖矿分红开发案例源码,DEFI/NFT/LP/DAPP代币合约流动性质押挖矿分红系统开发(逻辑及详细)
# web3对象与已部署的用户合约进行通信 rpc = "HTTP合约通讯地址(http url)" web3 = Web3(HTTPProvider(rpc))