我正在创建一个 React.js DApp,它将与Rootstock (RSK)部署的智能合约进行交互。\n最近我遇到了一个名为的 React 库useDApp的 React 库。该库使用 React 挂钩和上下文提供程序自动执行区块链连接、智能合约交互和发送交易。\n\xe2\x80\x8b\n例如:
\nconst { activateBrowserWallet, account } = useEthers();\nconst etherBalance = useEtherBalance(account);\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\x8b\n但是,我在支持的网络中没有看到 Rootstock。\n\xe2\x80\x8b
\n我尝试按照文档中的描述创建 Rootstock 配置创建 Rootstock 配置:\n\xe2\x80\x8b
\nconst config = {\n readOnlyChainId: 30,\n readOnlyUrls: {\n 31: \'https://public-node.testnet.rsk.co\',\n 30: \'https://public-node.rsk.co\',\n },\n};\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\x8b\n不幸的是,添加上述内容似乎还不够,\n我无法连接到 RSK 主网或 RSK 测试网。
\n是否可以配置useDApp 连接到 Rootstock?
\n据我们所知,从2020年1月13日开始,metamask将不再注入web3.js。我们应该采取哪些方法来停止对web3的依赖?
另外,我们如何使用目前正在注入 web3.js 的现有 Metamask 来测试它。
blockchain ethereum web3js metamask decentralized-applications
我有一个查询,每个节点中保存的区块链数据在哪里。在谷歌、StackOverflow 和一些博客上搜索了很长时间后,得到了很多答案:比如:它保存在像 level-DB 或 Rocks-DB 这样的数据库中,有人说它在内存中保存在一个变量中,有人说它保存在一个变量中文件(来自 hyperledger-fabric)。
我想知道,是否有一种特定的方法来存储大多数区块链框架所遵循的块?
或者所有这些框架都选择不同的方法(如文件、内存或 DB)。
我知道有一个保存在数据库中的区块链的当前状态/世界状态。这种当前状态/世界状态与实际区块链完全不同。在当前状态或世界状态下,数据可以被修改,但在实际区块链中块/数据是不可变的。
简而言之,我的问题是:
数据(不可变块)如何存储在区块链中每个完整节点的分类账上?是在内存中、文件中(如 JSON、CSV 文件)还是数据库中
bitcoin blockchain ethereum hyperledger decentralized-applications
我正在使用 IPFS(星际文件系统)以分散的方式存储文档/文件。
search distributed-computing distributed-filesystem ipfs decentralized-applications
我正在构建一个铸造网站,要求我检查铸造的 NFT 数量并向用户实时显示该数字。
起初,我只是每隔几秒钟发出一次请求来检索号码,但后来我想我可以使用事件侦听器来减少请求,因为人们只会在短时间内进行铸造。
然而,使用事件监听器后,请求量大幅增加。看起来它一直在调用 blockNumber、chainId 和 getLogs。这就是事件侦听器在幕后工作的方式吗?或者我在这里做错了什么?
这是下一个 js API 路线,代码如下:
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
import { ethers } from 'ethers'
import { contractAddress } from '../../helpers'
import type { NextApiRequest, NextApiResponse } from 'next'
import abi from '../../data/abi.json'
const NEXT_PUBLIC_ALCHEMY_KEY_GOERLI =
process.env.NEXT_PUBLIC_ALCHEMY_KEY_GOERLI
let count = 0
let lastUpdate = 0
const provider = new ethers.providers.JsonRpcProvider(
NEXT_PUBLIC_ALCHEMY_KEY_GOERLI,
'goerli'
)
const getNumberMinted = async () => {
console.log('RUNNING NUMBER MINTED - MAKING REQUEST', Date.now())
const provider = new …Run Code Online (Sandbox Code Playgroud) 我正在使用React、Hardhat、Ethers.js和Solidity制作一个简单的 dapp 。
我一直在关注 YouTube 上的教程,但我陷入了从创建的合约对象调用 Solidity 函数的部分。
每当我尝试从合约中调用函数时,它都会不断产生以下错误:
"contract runner does not support calling"
Run Code Online (Sandbox Code Playgroud)
查询合约是有效的,因为我可以获得合约的余额,但我找不到任何有关如何修复合约运行程序错误的资源。将不胜感激的帮助。下面是 React 中的代码。
"contract runner does not support calling"
Run Code Online (Sandbox Code Playgroud)
坚固性代码:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
contract Rental {
struct Bike{
string name;
uint rangePower;
uint maxSpeed;
uint batteryCapacity;
uint costPerHour;
bool isAvailable;
}
//admin variables
address owner;
uint totalHours=0;
uint totalRents=0;
uint totalEbikes;
//array of bikes
Bike[] bikes;
constructor(){
//contract deployer address
owner = msg.sender;
//initialization …Run Code Online (Sandbox Code Playgroud) ethereum ×3
blockchain ×2
ethers.js ×2
bitcoin ×1
hardhat ×1
hyperledger ×1
ipfs ×1
javascript ×1
metamask ×1
reactjs ×1
rsk ×1
search ×1
solidity ×1
usedapp ×1
web3js ×1