小编Sha*_*jan的帖子

2个不同输入的哈希值可以相同吗?

根据我的理解,散列是一个为任意长度的输入生成唯一的固定长度(假设为 64 位)输出的过程。(如有错误请指正)

因此,如果我获取哈希函数可以生成的所有 (x) 个可能的 64 位哈希值,并在其末尾附加 0 或 1。我得到一个大小为 2x 的列表(其中每个哈希值的长度为 65 位)。

如果我将所有 2x 组合作为同一哈希函数的输入,它如何为所有输入生成唯一的哈希值?

hash cryptography

3
推荐指数
2
解决办法
6001
查看次数

自动执行异步功能

以下代码完美运行:

const Course = mongoose.model('Course',courseSchema)
async function foo(){

  const nodeCourse = new Course({
    name: "Node JS Course",
    author: "foo",
    tags: ['node','backend']
  })

  const result = await nodeCourse.save()
  console.log(result)
}
foo()
Run Code Online (Sandbox Code Playgroud)

但是这个给出了一个错误:

const Course = mongoose.model('Course',courseSchema)
(async ()=>{

  const nodeCourse = new Course({
    name: "Node JS Course",
    author: "foo",
    tags: ['node','backend']
  })

  const result = await nodeCourse.save()
  console.log(result)
})()
Run Code Online (Sandbox Code Playgroud)

错误:

ObjectParameterError:Document()的参数"obj"必须是一个对象,得到异步函数

那么如何自动执行异步功能呢?

提前致谢

javascript mongoose mongodb node.js async-await

2
推荐指数
1
解决办法
508
查看次数

如何使用 solc 0.5 编译 Solidity

编译.js:

const path = require('path');
const solc = require('solc');
const fs = require('fs-extra');

const buildPath = path.resolve(__dirname, 'build');
fs.removeSync(buildPath);

const campaignPath = path.resolve(__dirname, 'contracts', 'Campaign.sol');
const source = fs.readFileSync(campaignPath, 'utf8');

var input = {
    language: 'Solidity',
    sources: {
        'Campaign.sol': {
            content: source
        }
    },
    settings: {
        outputSelection: {
            '*': {
                '*': [ '*' ]
            }
        }
    }
}

const output = solc.compile(input, 1).contracts;

fs.ensureDirSync(buildPath);

for(let contract in output){
    fs.outputJSONSync(
        path.resolve(buildPath, contract+'.json')
    );
}
Run Code Online (Sandbox Code Playgroud)

活动.sol:

pragma solidity ^0.5.3;

contract FactoryCampaign { …
Run Code Online (Sandbox Code Playgroud)

javascript ethereum solidity smartcontracts

2
推荐指数
1
解决办法
2098
查看次数