标签: blockchain

如何在 Solidity 中解码 SHA256 哈希值并检索数据

我正在开发一个 Solidity 项目,其中我将字符串编码为 SHA256 哈希值,现在我想解码 SHA256 哈希值并检索实际数据。请帮助锄头做这件事。

下面是我用来散列字符串的代码。

pragma solidity ^0.4.26;

contract TestShaAlgo {
  function getSha256(string str) public view returns (bytes32) {
  bytes32 hash = sha256(abi.encodePacked(str));
  return hash;
  }
}
Run Code Online (Sandbox Code Playgroud)

sha256 blockchain ethereum solidity smartcontracts

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

当我想将 remix 连接到本地仲裁网络时,我使用哪个端口?

我想在我的本地网络上部署智能合约。我通过执行本地节点

       PRIVATE_CONFIG=ignore nohup geth --datadir ./Node1/new- 
       node-1 
       --nodiscover --verbosity 5 --networkid 31337 --raft -- 
       raftport 51001 --rpc --rpcaddr 0.0.0.0 --rpcport 22101 -- 
       rpcapi 
       admin,db,eth,debug,miner,net,shh,txpool,personal,web3, 
       quorum,raft --emitcheckpoints --port 21101 2>>node1.log &
Run Code Online (Sandbox Code Playgroud)

我必须使用 localhost:\127.0.0.1:21101 或 22101?我想知道这两个端口之间的区别以及用途?

如果您不介意的话,还有一个问题:当我使用端口 21101 时,它无法连接,当我查阅节点日志时,我发现:

        Failed RLPx handshake addr=[::1]:42552  conn=inbound    
        err="read tcp [::1]:21102->[::1]:42552:  i/o timeout"
Run Code Online (Sandbox Code Playgroud)

blockchain ethereum quorum geth

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

如何将 pdf、docs 文件等上传到超级账本区块链

我目前正在 Hyperledger 中开展一个项目,我想通过在网络节点上分发文档文件并将文档文件取回,将 pdf 和 docs 等文件上传到 hyperledger 区块链中。请帮助我如何做以及我应该如何批准。如果在 Hyperledger 中无法实现,请告诉我可以通过哪个区块链实现。提前致谢。

blockchain ethereum smartcontracts hyperledger hyperledger-fabric

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

在 Substrate 中 AccountId32 和 AccountId 之间的转换

我有一个要求,我需要传入一些字节,我需要在 Substrate 2.0 中从中创建一个 accountId。

有没有办法在运行时(FRAME)之间AccountId32<T as frame_system::Trait>::AccountId中进行转换?或者创建一个<T as frame_system::Trait>::AccountIdfrom 字节的实例?

谢谢

parity blockchain substrate polkadot

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

我如何以某种方式运行 Substrate,以便为开发贫民立即验证交易?

我如何以假验证模式运行Substrate以用于开发目的(是否有类似于--devgeth中立即挖掘交易的东西)?

parity blockchain parity-io substrate substratevm

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

Solidity 硬编码 uint256 值数组的初始值失败

我\xe2\x80\x99m 尝试创建一个包含 10 个整数的数组 ( uint256) 并对其初始起始值进行硬编码 - 但我不断收到以下错误(奇怪地谈论uint16,即使我特别要求uint256):

\n
TypeError: Type uint16[10] memory is not implicitly convertible to expected type uint256[] memory.\n
Run Code Online (Sandbox Code Playgroud)\n

这里\xe2\x80\x99是我的代码:

\n
uint256 memory myNumbersArray = new uint256[](10);\nmyNumbersArray = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]; \n
Run Code Online (Sandbox Code Playgroud)\n

我也尝试过这样的方法:

\n
uint256[10] memory myNumbersArray;\nmyNumbersArray = [0, 100, 200, 300, 400, 500, 600, 700, 800, 900]; \n
Run Code Online (Sandbox Code Playgroud)\n

结果相同。

\n

(我想我也尝试过用一行来完成整个事情。)

\n

我收到此错误是因为 I\xe2\x80\x99m 分配的实际值太小,以至于它们不需要\xe2\x80\x99t 类型吗uint256
\n我需要知道这一点,因为该数组应该保存的未来 …

arrays blockchain ethereum solidity

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

Compact-u16 - 这样做的目的是什么?

周末我对 Solana 区块链中的一些区块链开发人员进行了一些研究,发现了一个名为 Compact-u16 的结构。文档中对此的定义如下:“compact-u16 是 16 位的多字节编码。第一个字节在其低 7 位中包含该值的低 7 位。如果该值高于 0x7f,高位被置位,该值的下 7 位被放入第二个字节的低 7 位。如果该值大于 0x3fff,则高位被置位,该值的剩余 2 位被放入第二个字节的低 7 位。第三个字节的 2 位。”。

我已经编码 30 多年了。也许我对此比较老套,但为什么有一个结构可以在 3 个字节中存储 16 位数据呢?从我的角度来看,这是非常低效的。是否有一个原因?在进一步的研究中,我发现了一个与汇编指令指针相关的文档,其中引用了 7 个指令指针,这些指令指针对于在上下文切换进出处理器堆栈时缓存值很有用。但此构造用于网络应用程序平台。就像从字面上看,我没有理由能够证明使用 3 个字节来存储 16 位数据是合理的。如果开发人员想要使用优雅的位映射解决方案来压缩空间,为什么不直接使用信号量呢?为什么要创建一个全新的构造,将数据的存储需求增加 33%。

我缺少什么?

variables blockchain

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

Solana 区块链。我如何生成私钥?

       const solanaWeb3 = require("@solana/web3.js");
    const solanatoken = require("@solana/spl-token");
    
      var wallet = solanaWeb3.Keypair.generate();
      console.log("public key...", wallet.publicKey);
      console.log("secret key...", wallet.secretKey);
    
      console.log("secret key...", JSON.stringify(wallet.secretKey.toString()));`enter preformatted text here`
Run Code Online (Sandbox Code Playgroud)

我有

public key... PublicKey {
  _bn: <BN: b5ec974285759f4004555c6890e045a4ce857c6a056895d77dd209c054e76556>
secret key... "211,55,244,72,160,174,33,152,24,226,97,172,91,91,47,3,148,83,99,188,150,111,153,248,253,237,31,223,194,194,199,0,181,236,151,66,133,117,159,64,4,85,92,104,144,224,69,164,206,133,124,106,5,104,149,215,125,210,9,192,84,231,101,86"
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到private key,比如

kNykCXNxgePDjFbDWjPNvXQRa8U12Ywc19dFVaQ7tebUj3m7H4sF4KKdJwM7yxxb3rqxchdjezX9Szh8bLcQAjb

用于幻影钱包?文档:https ://solana-labs.github.io/solana-web3.js/classes/Keypair.html

javascript private blockchain private-key solana

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

没有源代码是否可以获取合约的ABI?

是否可以在没有源代码的情况下获取已知合约地址的ABI?

我发现的唯一方法是使用 etherscan 的 API,但它仅适用于经过验证的合约。

blockchain ethereum solidity web3js

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

如何将多个不同长度的数组连接在一起?

我需要将多个不同大小的 u8 数组连接在一起,为区块链相关的东西创建一个块头,我尝试了 concat 方法,但只有在所有数组长度相同的情况下才有效。

pub struct Block{
    
    pub prev_block_hash: [u8;32],
    pub timestamp : [u8;8],
    pub difficuly : [u8;4], 
    pub block_height : [u8;4],
    pub nonce: [u8;4],
    pub version : [u8;4]

}
pub fn create_header(&self) -> [u8 ; 56]{
        let buffer :[ u8 ; 56] = [0;56];
        let buffer_as_vec  = [self.version, self.prev_block_hash,self.timestamp,self.difficuly,self.block_height,self.nonce].concat();

        buffer_as_vec.try_into().expect("Wrong size")
       
}
Run Code Online (Sandbox Code Playgroud)

rust blockchain

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