首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hyperledger-composer:散列文件(sha256)

hyperledger-composer:散列文件(sha256)
EN

Stack Overflow用户
提问于 2018-02-18 22:10:23
回答 2查看 1K关注 0票数 1

Unfortunately is Node.js 'require' not supported -我希望通过事务处理器导入斯坦福Javascript加密库。所以我的问题是:我想计算一个事务中文件内容的sha256散列。有没有一种使用事务处理器计算sha256散列的“无痛”方法?

谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-19 00:40:25

不要试图使用Node。只需在事务定义中包含JavaScript函数即可。如果需要,可以使用单独的文件。我在谷歌上快速搜索了一下,找到了一些这样的东西

https://github.com/emn178/js-sha256/blob/master/src/sha256.js

我在客户端进行文件散列,但在事务函数中使用JavaScript函数来生成GUID,因此过程是相同的。

票数 1
EN

Stack Overflow用户

发布于 2018-02-22 21:30:32

使用David Berger找到的库的快速示例:

https://github.com/emn178/js-sha256/blob/master/src/sha256.js

(从web下载文件,然后计算散列)。

也许使用外部REST服务来计算散列会更明智(也许使用https://hyperledger.github.io/composer/integrating/call-out,但是头部丢失了?)

编辑:它只能使用游乐场(客户端),见Function in logic.js works in playground but not in REST server,对仍在学习...也许我应该试试https://www.npmjs.com/package/request..。或者我自己的外部REST服务。

代码语言:javascript
复制
/**
* This part will only work on playground. Should try with
* @param {String} documentUrl 
*/
function getContent(documentUrl)
{
    return fetch(documentUrl, {
        method: 'GET'
    }).then((response) => {
        return response.text()
        .then((text) => {
          return text;
        });
     });
}

/**
 * @param {String} documentUrl
 */
function generateHash(documentUrl)
{
    return getContent(documentUrl)
    .then((documentContent) => {
        let hash = sha256.create();
        hash.update(documentContent);
        return hash.hex();
    });
}

所以,案件结束了,但我必须承认,这是一个简单的问题。现在我面临着更复杂的问题,使用Http调用外部rest API,rest端点而不是使用包装器……好处是:代码将去掉不必要的东西。尽管如此,hyperleder composer的学习曲线远没有单独使用hyperledger fabric那么陡峭。很棒的工具!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48852587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档