我试图通过仅使用本地存储的区块链(通过比特币核心下载)来检查给定比特币地址的余额.与此类似的东西(通过使用NBitCoin和/或QBitNinja),但无需访问网络:
private static readonly QBitNinjaClient client = new QBitNinjaClient(Network.Main);
public decimal CheckBalance(BitcoinPubKeyAddress address)
{
var balanceModel = client.GetBalance(address, true).Result;
decimal balance = 0;
if (balanceModel.Operations.Count > 0)
{
var unspentCoins = new List<Coin>();
foreach (var operation in balanceModel.Operations)
unspentCoins.AddRange(operation.ReceivedCoins.Select(coin => coin as Coin));
balance = unspentCoins.Sum(x => x.Amount.ToDecimal(MoneyUnit.BTC));
}
return balance;
}
Run Code Online (Sandbox Code Playgroud)
上面的示例需要访问网络.我需要离线做同样的事情.我想出了类似的东西,但显然它不起作用:
public decimal CheckBalanceLocal(BitcoinPubKeyAddress address)
{
var node = Node.ConnectToLocal(Network.Main);
node.VersionHandshake();
var chain = node.GetChain();
var store = new BlockStore(@"F:\Program Files\Bitcoin\Cache\blocks", Network.Main);
var index …
Run Code Online (Sandbox Code Playgroud) Git的内部数据结构是一个数据对象树,其中每个对象只指向其前身.每个数据块都经过哈希处理.当保存的哈希与实际哈希偏离时,将注意到修改(位错误或攻击)中间块.
这个概念与区块链有何不同?
Git未列为块链的示例,但至少在摘要中,两种数据结构描述看起来都相似:数据块,单向反向链接,哈希,......).
那么差异在哪里,Git不被称为区块链?
由于开发人员不断使用区块链的不同网络协议,如Hyperledger,multihain,Ethereum,Corda等.如果开发人员和区块链爱好者可以提出如上所述的各种区块链之间的一些关键差异,社区将会很感激.
谢谢 !
无论Hyperledger面料和Hyperledger锯齿是构建分布式应用程序台账,支持可插拔的共识机制和智能合同(chaincodes)平台.
那么主要区别是什么?什么时候选择一个来实现区块链解决方案?
任何人都可以详细解释PBFT算法而不给出相同的任何链接.以及它如何在hyperledger中工作.所以,一旦交易发送到blockchain
:
(1).谁验证了交易?
(2).如何在交易中达成共识?
(3).交易如何承诺区块链?
我有几个 keccak,如果我能找到一种便宜的方法来获取所创建的 uint 的一部分,那么它们可以减少到一个。
pragma solidity ^0.4.19;
contract test {
function test() {
}
function sup() returns (uint test) {
uint _test = uint(keccak256("wow"));
return _test;
}
}
Run Code Online (Sandbox Code Playgroud)
这会返回一个甜蜜的随机数:13483274892375982735325
现在的计划是,我不用用不同的“种子”调用 keccak 5 次,而是可以将该数字分开并得到类似:1348、3274、8923 等的内容,然后将其用作我的随机数,例如:1348 % 10
但坚固性并不能仅仅做到这一点。有什么便宜又好用的东西吗?
这个问题可以进入比特币论坛,但我试图从编程的角度来理解.
存在用于分布式存储的技术,例如分布式哈希表(例如kademlia或类似的).比特币区块链与分布式哈希表有何不同?或者是支持比特币区块链的分布式哈希表技术?或者为什么比特币区块链被称为与DHT相比这样的突破?
在比特币课程的第1周讲座中,讨论了加密哈希函数的3个属性:
碰撞阻力:如果找不到两个值x和y,使得x!= y,而H(x)= H(y),则认为散列函数H是抗碰撞的.
隐藏:哈希函数H隐藏如果:当从具有高熵的概率分布中选择秘密值r时,则给定H(r‖x),找到x是不可行的.‖表示两个字符串的连接.
益智友善.如果对于每个可能的n比特输出值y,如果从具有高熵的分布中选择k,则哈希函数H被认为是难以使用的,那么找到x使得H(k‖x)= y是不可行的.在时间上明显少于2 ^ n.
拼图友好似乎是一个更详细的隐藏描述.2之间有什么显着差异吗?哈希函数有1个属性,但不是两个?
我正在得到
类型“Window & typeof globalThis”上不存在属性“ethereum”
反应中的错误。这是产生问题的行:
import { ethers } from 'ethers'
const provider = new ethers.providers.Web3Provider(window.ethereum);
Run Code Online (Sandbox Code Playgroud)
知道会发生什么吗?
我是区块链的新手,我想在我们新的金融项目中实施区块链,预测将在不同方之间共享.互联网上有很多理论问题.但是我们可以从哪里开始实施.
blockchain ×10
ethereum ×3
hyperledger ×3
bitcoin ×2
corda ×2
hash ×2
.net ×1
c# ×1
cryptography ×1
dht ×1
distributed ×1
ethers.js ×1
git ×1
hashtable ×1
mining ×1
reactjs ×1
solidity ×1
string ×1
typescript ×1