标签: decentralized-applications

如何将 useDApp 连接到 Rootstock 网络?

我正在创建一个 React.js DApp,它将与Rootstock (RSK)部署的智能合约进行交互。\n最近我遇到了一个名为的 React 库useDApp的 React 库。该库使用 React 挂钩和上下文提供程序自动执行区块链连接、智能合约交互和发送交易。\n\xe2\x80\x8b\n例如:

\n
const { activateBrowserWallet, account } = useEthers();\nconst etherBalance = useEtherBalance(account);\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x80\x8b\n但是,我在支持的网络中没有看到 Rootstock。\n\xe2\x80\x8b

\n

我尝试按照文档中的描述创建 Rootstock 配置创建 Rootstock 配置:\n\xe2\x80\x8b

\n
const config = {\n  readOnlyChainId: 30,\n  readOnlyUrls: {\n    31: \'https://public-node.testnet.rsk.co\',\n    30: \'https://public-node.rsk.co\',\n  },\n};\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x80\x8b\n不幸的是,添加上述内容似乎还不够,\n我无法连接到 RSK 主网或 RSK 测试网。

\n

是否可以配置useDApp 连接到 Rootstock?

\n

javascript reactjs decentralized-applications rsk usedapp

5
推荐指数
1
解决办法
109
查看次数

Metamask 停止注入 web3.js

据我们所知,从2020年1月13日开始,metamask将不再注入web3.js。我们应该采取哪些方法来停止对web3的依赖?

另外,我们如何使用目前正在注入 web3.js 的现有 Metamask 来测试它。

blockchain ethereum web3js metamask decentralized-applications

4
推荐指数
1
解决办法
7205
查看次数

实际区块链状态数据存储在哪里:在内存中,在文件中还是在数据库中?

我有一个查询,每个节点中保存的区块链数据在哪里。在谷歌、StackOverflow 和一些博客上搜索了很长时间后,得到了很多答案:比如:它保存在像 level-DB 或 Rocks-DB 这样的数据库中,有人说它在内存中保存在一个变量中,有人说它保存在一个变量中文件(来自 hyperledger-fabric)。

我想知道,是否有一种特定的方法来存储大多数区块链框架所遵循的块?

或者所有这些框架都选择不同的方法(如文件、内存或 DB)。

我知道有一个保存在数据库中的区块链的当前状态/世界状态。这种当前状态/世界状态与实际区块链完全不同。在当前状态或世界状态下,数据可以被修改,但在实际区块链中块/数据是不可变的。

简而言之,我的问题是:

数据(不可变块)如何存储在区块链中每个完整节点的分类账上?是在内存中、文件中(如 JSON、CSV 文件)还是数据库中

bitcoin blockchain ethereum hyperledger decentralized-applications

3
推荐指数
3
解决办法
2876
查看次数

IPFS 搜索文件机制

我正在使用 IPFS(星际文件系统)以分散的方式存储文档/文件。

  • 为了从网络中搜索文件,是否有网络上所有哈希的记录(如水蛭)?
  • 我的请求如何通过网络传播?

search distributed-computing distributed-filesystem ipfs decentralized-applications

2
推荐指数
1
解决办法
1969
查看次数

Ethers.js 事件侦听器 - 许多 getLogs/chainId/blocknumber 请求的预期行为?

我正在构建一个铸造网站,要求我检查铸造的 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)

ethereum decentralized-applications ethers.js

1
推荐指数
1
解决办法
2210
查看次数

错误:合约运行程序不支持在 ethers.js v6 上调用(操作 =“call”,代码 = UNSUPPORTED_OPERATION,版本 = 6.3.0)

我正在使用ReactHardhatEthers.jsSolidity制作一个简单的 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)

solidity decentralized-applications ethers.js hardhat

1
推荐指数
1
解决办法
4855
查看次数