当我试图理解区块链技术时,我遇到了HyperLedger Fabric.根据文档,它是区块链技术的实现.
那是什么意思?块链只是一个概念和HyperLedger Fabric,这个概念的实现?
更新: 超级分层结构在哪里存储交易?我知道它是一个p2p体系结构,每个对等体都有一个事务副本,但通常这些事务是一个不断增长的集合.每个同行都有成长交易的副本吗?我还不清楚这一点.社区是否推荐任何数据库?
在尝试使用Hyperledger Fabric实现性能时,IBM团队在他们的文章Hyperledger Fabric:Permissioned Blockchains的分布式操作系统中报告过,我遇到了一些问题和错误.我收集了所有有用的信息,并希望与HF社区分享.另外,我向Fabric开发人员提出了一些关于其性能的问题.
在四个c5.9xlarge(36vCPU)aws实例上使用Cello部署Hyperledger Fabric v1.1.0网络:
{
fabric001: {
cas: [],
peers: ["anchor@peer1st.main"],
orderers: ["orderer1st.orderer"],
zookeepers: ["zookeeper1st"],
kafkas: ["kafka1st"]
},
fabric002: {
cas: [],
peers: ["worker@peer2nd.main"],
orderers: ["orderer2nd.orderer"],
zookeepers: ["zookeeper2nd"],
kafkas: ["kafka2nd"]
},
fabric003: {
cas: [],
peers: ["worker@peer3rd.main"],
orderers: ["orderer3rd.orderer"],
zookeepers: ["zookeeper3rd"],
kafkas: ["kafka3rd"]
},
fabric004: {
cas: ["ca1st.main"],
peers: [],
orderers: ["orderer4th.orderer"],
zookeepers: ["zookeeper4th"],
kafkas: ["kafka4th"]
}
}
Run Code Online (Sandbox Code Playgroud)
TLS已禁用.
Fabric通道配置(所有其他参数是默认值):
BatchTimeout: 1s
BatchSize:
MaxMessageCount: 500
AbsoluteMaxBytes: 200 MB
PreferredMaxBytes: 50 MB
Run Code Online (Sandbox Code Playgroud)
我将CouchDB和LevelDB的测试作为状态数据库进行了测试.我使用官方Fabcar链码(Golang实现)进行测试.我创建了简单的nodejs应用程序,它使用SDK与Fabric网络交互,并公开HTTP API进行负载测试.这个应用程序是无状态的,可以轻松扩展.对于负载测试,我使用的是YandexTank工具.我用高负载执行了两种测试:查询(当区块链为空时,通过peer001向Fabric状态请求)和插入(区块链内的事务).
我在 remix 中尝试了像上面那样的 Solidity 示例,solidity 版本 > 0.5.0 但我现在收到此错误。解决此错误的方法是什么?
contract MyContract {
string value;
function get() public view returns (string) {
return value;
}
function set(string _value) public {
value = _value;
}
constructor() public {
value = "myValue";
}
}
Run Code Online (Sandbox Code Playgroud) 那么,让我们考虑典型的贸易融资流程.导出器部署具有装运条件的合同,并在部署完成后生成散列.
问题:
1)合同在哪里存储?
2)海关和进口商等其他参与者如何获得此合同?
3)我们可以激活参与者级别对区块链合同的访问吗?
我正在创建一个以太坊DApp.DApp由具有关联数据的用户组成,例如电子邮件,姓名和个人资料图片.我想将用户的内容作为JSON对象存储在IPFS中,并使用IPFS哈希在链上引用它.我怎样才能将这些数据与特定用户相关联?从某种意义上说,后续与DApp的交互将用户与存储在IPFS中的数据联系起来.这是使用用户帐户哈希和某种密码完成的吗?
例如,用户A有兴趣使用DApp,因此,提供他或她的电子邮件,姓名和个人资料图片.然后,任何与DApp的后续交互,如评论或帖子,都会将此用户链接到IPFS中的相应用户数据.
对这种建模用户的方式的任何建议或调整将不胜感激.谢谢!
(PS我来自传统的网络/移动应用程序世界,所以我只是习惯于使用智能合约对事物进行建模.所以如果这是一个简单或结构不合理的问题,我会提前道歉.)
在IBM生产的"Coffee with Blockchain"应用程序中,它在Growers和Buyers之间进行价格匹配.我想知道如何实现匹配(在示例应用程序或实际实现中).
可在此处查看该应用示例:https://www.youtube.com/watch?v = suE5KHkESF4
"咖啡与区块链"如何将种植者与买家相匹配?
一些问题可以帮助指导答案:
这种匹配是否完全作为链码操作?如果是这样,那将如何实施?
例如,Grower会提交一个交易,他们有一批新的豆子准备装运,并触发链码中的匹配部分来查找/选择买家吗?
我怀疑这个过程是否具有确定性,否则种植者的新批次宣告失败,他们必须重试.也许在链码中有不同的方式吗?
或者匹配是否在链代码之外运行,在分类帐中监听更新,而是调用API调用链代码方法将bean从Grower-A转移到Buyer-B?
我对此表示怀疑,然后将匹配集中到一些可信赖的提供商,而不是经过验证/认可的链代码.
谢谢
看作数据类型,Blockchain是一个单一的链表吗?由于每个块使用散列引用前一个块.
还是某种树?
我正在 Linux 中设置安全帽。我首先使用这些命令设置了反应应用程序。
npx create-react-app react-dapp
cd react-dapp
Run Code Online (Sandbox Code Playgroud)
然后我使用此命令安装了一些安全帽依赖项。
npm install ethers hardhat @nomiclabs/hardhat-waffle \
ethereum-waffle chai \
@nomiclabs/hardhat-ether
Run Code Online (Sandbox Code Playgroud)
这一切都做得正确。然后我创建了安全帽配置和设置。
npx hardhat
Run Code Online (Sandbox Code Playgroud)
然后我编辑了hardhat.config.js文件。我有这样的地方。
module.exports = {
solidity: "0.8.4",
paths: {
artifacts: './src/artifacts',
},
networks: {
hardhat: {
chainId: 1337
}
Run Code Online (Sandbox Code Playgroud)
} }; 之后我创建了节点。
npx hardhat node
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
错误 HH604:运行 JSON-RPC 服务器时出错:错误:0308010C:数字信封例程::不受支持
在 Solidity 中,我们有四种访问类型。其中两个是private
和internal
。如果两者都可以在智能合约中使用,但部署后都不可见,有什么区别?
我通过npm
以下方式安装了松露:
sudo npm install -g truffle
但是当我在控制台上运行松露列表时它就给了我
bash:truffle:命令未找到
blockchain ×10
ethereum ×4
solidity ×3
hyperledger ×2
api ×1
contract ×1
hardhat ×1
ipfs ×1
linux ×1
list ×1
load-testing ×1
metamask ×1
npm ×1
performance ×1
storage ×1
truffle ×1
types ×1