当前位置: 首页 > 面试题库 >

nodejs测试hyperledger作曲家v0.15失败,并出现错误:找不到卡:PeerAdmin @ hlfv1

林元明
2023-03-14
问题内容

随着v0.15中卡的实现,使用概要文件的测试例程的早期版本(显然)将无法工作。但是,我找不到SDK方法来创建运行测试所需的卡。通过v0.14进行测试的代码的“之前”部分如下所示,该部分使用嵌入式配置文件,创建网络的临时实例并运行测试:

describe('Finance Network', () => {

    // let adminConnection;
    let businessNetworkConnection;

    before(() => {
        BrowserFS.initialize(new BrowserFS.FileSystem.InMemory());
        const adminConnection = new AdminConnection({ fs: bfs_fs });
        return adminConnection.createProfile('defaultProfile', {
            type: 'embedded'
        })
            .then(() => {
                return adminConnection.connect('defaultProfile', adminID, adminPW);
            })
            .then(() => {
                return BusinessNetworkDefinition.fromDirectory(path.resolve(__dirname, '..'));
            })
            .then((businessNetworkDefinition) => {
                return adminConnection.deploy(businessNetworkDefinition);
            })
            .then(() => {
                businessNetworkConnection = new BusinessNetworkConnection({ fs: bfs_fs });
                return businessNetworkConnection.connect('defaultProfile', network, adminID, adminPW);
            });
    });

我试图在Nodejs文档中找到(并且还没有发现)的是如何在使用相同方法的同时创建必要的卡来完成这项工作。

我希望将以下代码行替换为可创建必要卡片的内容:

        return adminConnection.createProfile('defaultProfile', {
            type: 'embedded'
        })
            .then(() => {
                return adminConnection.connect('defaultProfile', adminID, adminPW);
            })

我看到卡创建的唯一地方是composer-client Participant
Registry,但这是Catch-22的情况,必须连接才能创建卡,但是需要连接卡。像我们过去对Hyperledger-
Composer的众多发行版所做的那样,建议编写基于摩卡的测试的推荐方法是什么?

谢谢!


问题答案:

经过几天的试验,我找到了解决此问题的方法。以下代码序列使用在v0.15版本中创建的PeerAdmin卡。我导入该卡,并在adminConnect之后,更新卡的元数据中的businessNetwork元素,然后在重新导入卡后,部署并连接到业务网络。

describe('Finance Network', function () {
    this.timeout(_timeout);
    let businessNetworkConnection;
    let peerName = 'PeerAdmin@hlfv1';
    before(function () {
        const adminConnection = new AdminConnection();
        let idPeer;
        return hlc_idCard.fromDirectory(_home+'/.composer/cards/'+peerName)
        .then ((_idPeer) => {
            idPeer = _idPeer;
            return adminConnection.importCard(peerName, idPeer);
        })
        .then(() => {
            return adminConnection.connect(peerName);
        })
        .then(() => {
            return BusinessNetworkDefinition.fromDirectory(path.resolve(__dirname, '..'));
        })
        .then((businessNetworkDefinition) => {
            idPeer.metadata.businessNetwork = network;
            return adminConnection.importCard(peerName, idPeer)
            .then(() => {
                return adminConnection.deploy(businessNetworkDefinition,{'card': idPeer});
            });
        })
        .then(() => {
            businessNetworkConnection = new BusinessNetworkConnection();
            return businessNetworkConnection.connect(peerName);
        });
    });


 类似资料:
  • 我已经按照Ubuntu 16.04网站上的说明安装了composer。在终端中发出“composer”命令后,它将给出通常的输出。安装composer后,我使用下载了composer 现在要安装Laravel,我必须添加。但是没有。我的主目录中的composer文件夹。有谁能告诉我为什么会这样?

  • 我正在尝试在linux上运行mocha测试 错误:未找到测试文件:“test/”npm ERR!测试失败。详见上文。 这是我的包 使用的命令:npm install--global mocha npm i并运行我正在使用npm test的测试 项目结构:

  • 我已经为MNIST分类创建了一个TF-lite模型(我使用TF 1.12.0并在Google Colab上运行它),我想使用TensorFlow Lite Python解释器对其进行测试,如 https://github.com/freedomtan/tensorflow/blob/deeplab_tflite_python/tensorflow/contrib/lite/examples/pyt

  • 我想在子目录中使用Slim 3,但似乎无法加载它。所有文件都包含在子目录中,包括composer。json。这是我的作曲家。json: 这是我的剧本: 我尝试了很多方法,包括使用composer安装Slim时找不到Slim类,以及PHP致命错误:找不到“Slim”类。不幸的是,他们没有解决我的问题。 我得到的错误是

  • 我有这里描述的问题: https://twistedmatrix.com/trac/ticket/6539#comment:12 然而,问题已经解决,每个人似乎都认为Twisted的一个巨大子集现在运行在Python 3上。 当我使用Python 3安装Twisted时,会发出票据上列出的错误,然后我会遇到以下情况: 我做错了什么?

  • 不知何故,我无法让自动加载正常工作。我正在为phpunit使用以下引导文件。 这个的输出显示,据我所知,注册应该是正常的。 不知怎的,我犯了以下错误。 在myproj文件夹src/test/unit/-DefaultDomainEventTest中,我的文件夹结构如下所示。php-bootstrap。php示例/-NotificationCountChangedEvent。php Notifica