【软件工程与实践】(10)账本框架中的Setting和Service的代码分析

2021SC@SDUSC

一、Settings

1.GatewayAuthResponse

这个类里面包含着网关的接入设置。

这个方法是所有共识网络的接入配置。

public LedgerIncomingSettings[] getLedgers() {
    
    
		return ledgers;
	}

所有账本对应的共识网络的接入配置。

public void setLedgers(LedgerIncomingSettings[] ledgerSettings) {
    
    
		this.ledgers = ledgerSettings;
	}

2.LedgerIncomingSettings

这个类里面的一些变量

//	获得账本哈希
	private HashDigest ledgerHash;
//  二进制密码的设置
	private CryptoSetting cryptoSetting;
//共识协议提供者的名字
	private String providerName;
//是否确定的boolean值
	private boolean ready;
//共识用户的设置
	private String consensusClientSettings;

获取账本哈希

public HashDigest getLedgerHash() {
    
    
		return ledgerHash;
	}

	public void setLedgerHash(HashDigest ledgerHash) {
    
    
		this.ledgerHash = ledgerHash;
	}

账本采用的密码设置。

public CryptoSetting getCryptoSetting() {
    
    
		return cryptoSetting;
	}

	public void setCryptoSetting(CryptoSetting cryptoSetting) {
    
    
		this.cryptoSetting = cryptoSetting;
	}

共识协议提供者程序名称

public String getProviderName() {
    
    
		return providerName;
	}

	public void setProviderName(String providerName) {
    
    
		this.providerName = providerName;
	}

以 Base64 格式编码的共识协议客户端配置数据

public String getConsensusClientSettings() {
    
    
		return consensusClientSettings;
	}

	public void setConsensusClientSettings(String clientSettings) {
    
    
		this.consensusClientSettings = clientSettings;
	}

判断节点是否已经启动。

public boolean isReady() {
    
    
		return ready;
	}

	public void setReady(boolean ready) {
    
    
		this.ready = ready;
	}

二、Service

这一部分主要讲的就是事务性的服务,下面将介绍四个接口

1.TransactionBatchProcess

安排执行指定的交易请求,注意:此方法并不表示此交易请求立即得到完整执行,并理解获得最终有效的结果

方法返回的TransactionResponse只是一个代理对象,其最终的值需要在整个批处理结果被成功地提交或者取消后才能确定。

request交易请求。

TransactionResponse schedule(TransactionRequest request);

完成本次批量执行;生成待提交的结果

TransactionBatchResultHandle prepare();

	TransactionBatchResult cancel(TransactionState errorResult);

	long blockHeight();

2.TransactionBatchResult

使用getBlock()方法获得区块并且迭代访问这个区块最后不会返回一个结果。

LedgerBlock getBlock();
	
	Iterator<TransactionResponse> getResponses();

3.TransactionBatchResultHandle

这个是上一个接口的子类。
在上一个接口的方法智商添加了提交事务和删除事务的功能

void commit();
	
	void cancel(TransactionState errorResult);

4.TransactionEngine

这个接口顾名思义是用于启动一个事务的引擎。
他可以生成下一个事务堆或者可以根据一个事务的哈希值获得这个事务的信息。

TransactionBatchProcess createNextBatch(HashDigest ledgerHash);
	
	TransactionBatchProcess getBatch(HashDigest ledgerHash);

猜你喜欢

转载自blog.csdn.net/weixin_45932150/article/details/121719296