All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jd.blockchain.consensus.client.ClientFactory Maven / Gradle / Ivy

The newest version!
package com.jd.blockchain.consensus.client;

import com.jd.blockchain.consensus.ClientCredential;
import com.jd.blockchain.consensus.ClientIncomingSettings;
import com.jd.blockchain.consensus.SessionCredential;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import utils.net.SSLSecurity;

import java.security.cert.X509Certificate;

public interface ClientFactory {

	/**
	 * 创建客户端的认证身份;
	 *
	 * @param sessionCredential 过去已分配的会话凭证;如果为 null,则方法会产生一个默认凭证;
	 * @param clientKeyPair
	 * @return
	 */
	ClientCredential buildCredential(SessionCredential sessionCredential, AsymmetricKeypair clientKeyPair);

	/**
	 * 创建客户端的认证身份;
	 * 
	 * @param sessionCredential 过去已分配的会话凭证;如果为 null,则方法会产生一个默认凭证;
	 * @param clientKeyPair
	 * @param gatewayCertificate
	 * @return
	 */
	ClientCredential buildCredential(SessionCredential sessionCredential, AsymmetricKeypair clientKeyPair, X509Certificate gatewayCertificate);

	/**
	 * 根据接入配置信息创建客户端的本地连接配置;
	 * 
	 * @param incomingSettings
	 * @return
	 */
	ClientSettings buildClientSettings(ClientIncomingSettings incomingSettings);

	/**
	 * 根据接入配置信息创建客户端的本地连接配置;
	 *
	 * @param incomingSettings
	 * @param sslSecurity TLS配置
	 * @return
	 */
	ClientSettings buildClientSettings(ClientIncomingSettings incomingSettings, SSLSecurity sslSecurity);

	/**
	 * 根据共识客户端的配置信息建立一个共识客户端实例;
	 * 
	 * @param settings
	 * @return
	 */
	ConsensusClient setupClient(ClientSettings settings);

	default ConsensusClient setupClient(ClientSettings settings, String ledgerHash){
		return setupClient(settings);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy