我正在开发一个 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) 我想在我的本地网络上部署智能合约。我通过执行本地节点
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) 我目前正在 Hyperledger 中开展一个项目,我想通过在网络节点上分发文档文件并将文档文件取回,将 pdf 和 docs 等文件上传到 hyperledger 区块链中。请帮助我如何做以及我应该如何批准。如果在 Hyperledger 中无法实现,请告诉我可以通过哪个区块链实现。提前致谢。
blockchain ethereum smartcontracts hyperledger hyperledger-fabric
我有一个要求,我需要传入一些字节,我需要在 Substrate 2.0 中从中创建一个 accountId。
有没有办法在运行时(FRAME)之间AccountId32和<T as frame_system::Trait>::AccountId中进行转换?或者创建一个<T as frame_system::Trait>::AccountIdfrom 字节的实例?
谢谢
我如何以假验证模式运行Substrate以用于开发目的(是否有类似于--dev在geth中立即挖掘交易的东西)?
我\xe2\x80\x99m 尝试创建一个包含 10 个整数的数组 ( uint256) 并对其初始起始值进行硬编码 - 但我不断收到以下错误(奇怪地谈论uint16,即使我特别要求uint256):
TypeError: Type uint16[10] memory is not implicitly convertible to expected type uint256[] memory.\nRun Code Online (Sandbox Code Playgroud)\n这里\xe2\x80\x99是我的代码:
\nuint256 memory myNumbersArray = new uint256[](10);\nmyNumbersArray = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]; \nRun Code Online (Sandbox Code Playgroud)\n我也尝试过这样的方法:
\nuint256[10] memory myNumbersArray;\nmyNumbersArray = [0, 100, 200, 300, 400, 500, 600, 700, 800, 900]; \nRun Code Online (Sandbox Code Playgroud)\n结果相同。
\n(我想我也尝试过用一行来完成整个事情。)
\n我收到此错误是因为 I\xe2\x80\x99m 分配的实际值太小,以至于它们不需要\xe2\x80\x99t 类型吗uint256?
\n我需要知道这一点,因为该数组应该保存的未来 …
周末我对 Solana 区块链中的一些区块链开发人员进行了一些研究,发现了一个名为 Compact-u16 的结构。文档中对此的定义如下:“compact-u16 是 16 位的多字节编码。第一个字节在其低 7 位中包含该值的低 7 位。如果该值高于 0x7f,高位被置位,该值的下 7 位被放入第二个字节的低 7 位。如果该值大于 0x3fff,则高位被置位,该值的剩余 2 位被放入第二个字节的低 7 位。第三个字节的 2 位。”。
我已经编码 30 多年了。也许我对此比较老套,但为什么有一个结构可以在 3 个字节中存储 16 位数据呢?从我的角度来看,这是非常低效的。是否有一个原因?在进一步的研究中,我发现了一个与汇编指令指针相关的文档,其中引用了 7 个指令指针,这些指令指针对于在上下文切换进出处理器堆栈时缓存值很有用。但此构造用于网络应用程序平台。就像从字面上看,我没有理由能够证明使用 3 个字节来存储 16 位数据是合理的。如果开发人员想要使用优雅的位映射解决方案来压缩空间,为什么不直接使用信号量呢?为什么要创建一个全新的构造,将数据的存储需求增加 33%。
我缺少什么?
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
是否可以在没有源代码的情况下获取已知合约地址的ABI?
我发现的唯一方法是使用 etherscan 的 API,但它仅适用于经过验证的合约。
我需要将多个不同大小的 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) blockchain ×10
ethereum ×5
solidity ×3
parity ×2
substrate ×2
arrays ×1
geth ×1
hyperledger ×1
javascript ×1
parity-io ×1
polkadot ×1
private ×1
private-key ×1
quorum ×1
rust ×1
sha256 ×1
solana ×1
substratevm ×1
variables ×1
web3js ×1