当前位置: 首页 > 知识库问答 >
问题:

当我试图在testnet块链中创建块时,网络的稳定性为每个请求创建了不连续的块

叶修永
2023-03-14

我不熟悉方块链。我试图理解块是如何在块链中创建的。因此,我在solidity中尝试了简单的智能合约,并在testnet(Ropsten network)中部署了该合约。在合同执行过程中,我注意到砌块是以不连续的方式创建的。

智能合约代码:

pragma solidity 0.5.12;

contract Bank{
    int balance;

    constructor() public {
        balance=1;
    }

    function getBalance() view public returns(int){
        return balance;
    }
    function withDraw(int amount) public returns(string memory) {
        if(balance>=amount){
            balance-=amount;
            return "success";
        }
        else{
            return "out of balance";
        }
    }
    function depositAmount(int amount) public{
        balance+=amount;
    }
}

For example : Smart contract deployed block number --> 12003155,
              While calling the depositAmount function it created a block --> 12003210,
              While calling the withDraw function it created a block --> 12003222

我的问题是:为什么每个请求都会创建一个不连续的块,而不是创建一个连续的块?

谢谢。

共有1个答案

邴修远
2023-03-14

以太坊块数每次增加1,这可以在Etherscan上看到。区块编号表示区块链的长度。

在您的案例中,您之所以看不到这一点,是因为您的事务是在不同的块中挖掘的。因此,您的合同部署在block中,然后对于55个block,网络正忙于挖掘其他人的交易(block number仍在增加1),然后对depositAmount()的调用包含在block中,并被挖掘。

 类似资料:
  • 我有数据。下面的框架。我想添加一列“g”,它根据列中的连续序列对数据进行分类。也就是说,如最后一列“g”所示,h_no

  • 我有以下错误:创建名为'securityConfig'的bean时出错:请求的bean当前正在创建中:是否有不可解析的循环引用? 我该怎么解决呢?

  • 问题内容: 我刚刚启动了一个简单的Java测试项目,该项目使用Hibernate管理某些实体,并提供REST接口来操纵这些对象并提供一些其他业务逻辑。REST接口是使用RESTEasy和Jetty创建的。 到目前为止,一切工作正常,但是我感觉我实际上写了太多样板代码。由于我在这些Java框架中没有太多经验,所以我只是想知道是否有人可以给我提示如何改善这种情况。 每个请求创建hibernate会话

  • 我有一个类,下面的类作为RequestScope bean:

  • 问题内容: 我想从图像为JMapViewer创建离线地图图块。我怎么能做到呢?生成这些图块的工具是什么? 问题答案: 有多种方法可以实现该目标。它们全部利用外部工具链: 1.离线渲染器 这有点复杂,因为您需要使用渲染器,地图样式和OSM数据包在盒子上渲染自己的地图图块。第一种简单的方法是使用 Maperitive,因为它很容易配置并且带有样式。更高级的是,您可以设置整个OSM渲染堆栈(Mapnik