Resuelva el problema de la creación lenta de instancias del código de cadena del nodo java de la estructura Hyperledger y el tiempo de espera fácil

Hyperledger fabric instanciar el código de cadena de Java y el código de cadena de nodo lleva mucho tiempo y, a veces, se agota el tiempo de espera. ¿Cómo resolver este problema?

artículos de Java

Después de mi investigación, descubrí que la razón por la que el nodo que instancia el código de cadena de Java es más lento es porque java generalmente usa un proyecto gradle o un proyecto maven, y estos dos proyectos necesitan descargar archivos jar dependientes relacionados al crear una instancia. La razón principal es que la ejecución de este paso es relativamente lenta. Lento, la clave para mejorar el problema radica en cómo resolver el problema de la descarga lenta de archivos jar. Cambiar la dependencia del proyecto para usar archivos jar locales puede resolver eficazmente este problema.

1 Cambiar a jar local

Empaquete el jar en el proyecto, de modo que no haya necesidad de descargar archivos dependientes al inicio, lo que puede acelerar de manera efectiva. Según mi medición real, el uso de este método puede acelerar la creación de instancias del código de cadena de Java a aproximadamente 40 segundos, por supuesto, también está relacionado con la configuración de la computadora

Aquí se demostrará cómo gradle usa los archivos jar locales. El principio de maven es el mismo (consulte el enlace del blog original: https://www.cnblogs.com/adderhuang/p/12155834.html ). Cambie build.gralde a lo siguiente,

plugins {
    id 'com.github.johnrengelman.shadow' version '2.0.3'
    id 'java'
}
group 'org.hyperledger.fabric-chaincode-java'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    //chaincode需要的依赖
    compile group: 'org.hyperledger.fabric-chaincode-java', name: 'fabric-chaincode-shim', version: '1.4.1'
//    https://mvnrepository.com/artifact/com.alibaba/fastjson
    compile group: 'com.alibaba', name: 'fastjson', version: '1.2.62'
    testCompile group: 'junit', name: 'junit', version: '4.12'
    //从项目的libs目录加载依赖的jar包
//    compile fileTree(dir:'libs',includes:['*.jar'])
}
shadowJar {
    baseName = 'chaincode'
    version = null
    classifier = null

    manifest {
        attributes 'Main-Class': 'org.hyperledger.fabric.example.SimpleChaincode'
    }
}
//将依赖的jar包导入到项目的libs目录下
task copyJars(type: Copy) {
    from configurations.runtime
    into 'libs' // 目标位置
}

Crea manualmente la carpeta libs

llevado a cabo

gradle build copyJars

Luego modifique build.gradle de la siguiente manera:

plugins {
    id 'com.github.johnrengelman.shadow' version '2.0.3'
    id 'java'
}
group 'org.hyperledger.fabric-chaincode-java'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    //chaincode需要的依赖
/*    compile group: 'org.hyperledger.fabric-chaincode-java', name: 'fabric-chaincode-shim', version: '1.4.1'

    compile group: 'com.alibaba', name: 'fastjson', version: '1.2.62'
    testCompile group: 'junit', name: 'junit', version: '4.12'*/
//    从项目的libs目录加载依赖的jar包
    compile fileTree(dir:'libs',includes:['*.jar'])
}
shadowJar {
    baseName = 'chaincode'
    version = null
    classifier = null

    manifest {
        attributes 'Main-Class': 'org.hyperledger.fabric.example.SimpleChaincode'
    }
}
//将依赖的jar包导入到项目的libs目录下
task copyJars(type: Copy) {
    from configurations.runtime
    into 'libs' // 目标位置
}

Poder

2 Configure espejos domésticos, como los espejos Ali

La configuración de la duplicación del almacén de maven doméstico también puede lograr la aceleración. Hay muchos tutoriales, no en la demostración, puede encontrarlo usted mismo. 

versión de nodo

La instanciación lenta del nodo se bloquea principalmente en el paso de instalación de npm. La solución es similar a java. En el directorio raíz del código de cadena de nodo, ejecute el comando npm install para instalar node_modules en el código de cadena por adelantado, lo que puede acelerar la instalación. La desventaja es que conduce al código de cadena. El archivo es demasiado grande

 

Supongo que te gusta

Origin blog.csdn.net/qq_27348837/article/details/108052520
Recomendado
Clasificación