什么是 Hyperledger Fabric peer 网络中的客户端?
客户的角色是什么?
什么可以成为 Hyperledger Fabric 区块链网络中的客户端?
我正在编写本教程:
http://hyperledger-fabric.readthedocs.io/en/latest/getting_started.html
在命令中的“创建和加入频道”部分:
peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
未找到命令“peer”,您的意思是:
“moreutils”包中的命令“pee”(宇宙)“gerstensaft”包中的
命令“啤酒”(宇宙)
“耳朵”包中的命令“peel”(宇宙)
命令“梨” ' 来自包 'php-pear' (main)
peer: 命令未找到
对于任何平台,是否有任何用例或流程,其中通过区块链中的哈希或交易 ID 搜索块?
我有一个函数可以生成一个block包含一些数据的函数:
def new_block(self, proof, previous_hash=None):
...
block = {
'message': 'New Block Forged',
'index': len(self.chain) + 1,
'transactions': self.current_transactions,
'proof': proof,
'previous_hash': previous_hash, or self.hash_block(self.chain[-1]),
'timestamp': response.tx_time or time(),
}
Run Code Online (Sandbox Code Playgroud)
self.chain是块所在的块列表。在previous_hash(先前块的散列),被传递给函数,并创建时间戳。不要太担心实际数据的细节(好吧,那里可能有问题,但它更多地与hash()功能的关系比数据发生的事情)
接下来我对块进行哈希处理,并将其添加到块中:
block['hash'] = self.hash_block(block)
该hash_block函数如下所示:
@staticmethod
def hash_block(block):
block_string = json.dumps(block, sort_keys=True)
return hash(block_string)
Run Code Online (Sandbox Code Playgroud)
这个函数创建了一个与行中的下一个块完全不同的哈希(链上附加到前面块的最后一个块的哈希与前面块的哈希不匹配previous_hash。但是,他们使用的是相同的功能:
这一行:
'previous_hash': previous_hash or self.hash_block(self.chain[-1])
和这一行:
block['hash'] = self.hash_block(block)
是重要的线路(和 hash_block)函数。一个块被创建,被散列并附加散列,然后另一个块被创建并对前一个块进行散列,并且它与创建该块时为该块创建的散列不匹配。
另外,我从 hashlib.sha256 开始,当我注意到这个问题时,我决定看看它是否是散列函数,所以我切换到stock散列,但我仍然遇到问题 - 最终我希望它能够工作hashlib,但我想如果我能先让它工作hash......我会解决这个问题 …
我在简单的solidity代码下面写了这个来计算一些数字。但是,以太坊区块链在每个函数上给出不同的输出。我的代码有什么问题还是以太坊区块链问题?
我的可靠性代码:
pragma solidity ^0.4.24;
contract Calculate {
uint balance = 50000000000000000000;
function done() public pure returns (uint) {
return (50000000000000000000 / 3000) * 3000;
}
function fail() public view returns (uint) {
return (balance / 3000) * 3000;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
done() function returns 50000000000000000000
fail() function returns 49999999999999998000
Run Code Online (Sandbox Code Playgroud)
请在此处查看现场示例: https : //ropsten.etherscan.io/address/0xf45a2a66be9835fdc9e1065875808616cb8e752e#readContract
数字签名取决于消息和密钥。假设接收者多次复制消息(我们唯一id的原因),为什么签名会不同(因为消息和密钥相同)?
我正在尝试将 Node.js SDK 用于 BigchainDB,但我总是收到错误消息
错误:找不到模块“bigchaindb-driver”
但是bigchaindb-driver已经安装了npm install。
请检查这个github问题
我是 Hyperledger Fabric 的新手。当我从 cli 容器安装到对等方后实例化用 java 编写的链码时,出现了一些错误:
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all files for configuration ':compileClasspath'.
> Could not find com.github.everit-org.json-schema:org.everit.json.schema:1.11.1.
Searched in the following locations:
file:/root/.m2/repository/com/github/everit-org/json-schema/org.everit.json.schema/1.11.1/org.everit.json.schema-1.11.1.pom
file:/root/.m2/repository/com/github/everit-org/json-schema/org.everit.json.schema/1.11.1/org.everit.json.schema-1.11.1.jar
https://repo.maven.apache.org/maven2/com/github/everit-org/json-schema/org.everit.json.schema/1.11.1/org.everit.json.schema-1.11.1.pom
https://repo.maven.apache.org/maven2/com/github/everit-org/json-schema/org.everit.json.schema/1.11.1/org.everit.json.schema-1.11.1.jar
Required by:
project : > org.hyperledger.fabric-chaincode-java:fabric-chaincode-shim:1.4.2
Run Code Online (Sandbox Code Playgroud)
我认为这可能是 Maven 存储库的问题,但是当我在主机的终端中使用 gradle 时,它运行正常,例如:
fabric@ubuntu:~/fabric1.4/fabric-samples/chaincode/master-liuqi/java$ sudo /opt/gradle/bin/gradle -b build.gradle build
Task :compileJava
Note: /home/fabric/fabric1.4/fabric-samples/chaincode/master-liuqi/java/src/main/java/org/hyperledger/fabric/example/SimpleChaincode.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
BUILD SUCCESSFUL in 0s
2 actionable tasks: …Run Code Online (Sandbox Code Playgroud) 我想从分类账的最后一块备份对网络操作至关重要的基本文件。
有geth程序在运行,并提供--rpc服务。
服务做什么:
mysql)。目前我们正在使用full模式,但它有点慢,并且需要更多的磁盘空间。
fast模式是否足以满足上述用途?fullmdoe切换到fastmode,会geth不会要重新下载所有年的历史?或者,它会重用历史?(我在Ethereum现场问了另一个关于以太坊的问题,有兴趣的也可以看看:https : //ethereum.stackexchange.com/questions/78293/how-to-migrate-geths-data )
blockchain ×10
hyperledger ×3
ethereum ×2
bigchaindb ×1
calculation ×1
chaincode ×1
cryptography ×1
geth ×1
go-ethereum ×1
gradle ×1
hash ×1
java ×1
json ×1
list ×1
node.js ×1
npm ×1
python ×1
solidity ×1