Unfortunately is Node.js 'require' not supported -我希望通过事务处理器导入斯坦福Javascript加密库。所以我的问题是:我想计算一个事务中文件内容的sha256散列。有没有一种使用事务处理器计算sha256散列的“无痛”方法?
谢谢你的帮忙!
发布于 2018-02-19 00:40:25
不要试图使用Node。只需在事务定义中包含JavaScript函数即可。如果需要,可以使用单独的文件。我在谷歌上快速搜索了一下,找到了一些这样的东西
https://github.com/emn178/js-sha256/blob/master/src/sha256.js
我在客户端进行文件散列,但在事务函数中使用JavaScript函数来生成GUID,因此过程是相同的。
发布于 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服务。
/**
* 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那么陡峭。很棒的工具!
https://stackoverflow.com/questions/48852587
复制相似问题