小编sam*_*adi的帖子

是否有类似于坚固的东西

    struct buyer{
       uint amount;
       Status status;
    }

    mapping(address=>buyer) public buyers;
    mapping(uint=>address) buyerIndex;
    uint public buyerNum;
    //Order a product.
    function(){
      uint doubleValue=value*2;
      uint amount=msg.value/doubleValue; 
      if(buyers[msg.sender]==null){ //Error in this line
      buyer abuyer=buyer({amount:amount,status:Status.Created}); //Error in this line
      buyerNum++;
      buyerIndex[buyerNum]=msg.sender;
      buyers[msg.sender]=abuyer;
    }else{
      buyers[msg.sender].amount+=amount;
    }
      Order(msg.sender,amount*doubleValue,amount);

 }
Run Code Online (Sandbox Code Playgroud)

如果买方没有记录在买方映射中,那么buyerNum ++; 但我不知道如何判断买家是否在映射中

contract ethereum solidity

18
推荐指数
4
解决办法
2万
查看次数

Solidity 中的动态数组

我对以太坊和 Solidity 开发非常陌生。

我只想声明一个简单的数组(动态列表),一个 set 函数将字符串推入其中,一个函数返回保存在动态数组中的所有字符串。

我搜索了很多,但找不到这个简单的东西。

提前致谢

ethereum solidity

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

如何部署具有多个验证器的超级锯齿网络?

我正在尝试使用至少2个验证器和一些事务处理器来配置锯齿网络.我正在使用Ubuntu 18.04,所以只有可能的解决方案是使用docker.

我整天搜索了一个有效的例子但仍然没有运气.还有就是官方网站上的例子在这里,但没有工作.docker镜像版本是1.1这很奇怪,因为docker hub上没有这样的版本.此外,它需要一个在任何地方都不存在的图像(hyperledger/sawtooth-poet-engine).

我知道主验证器应该生成密钥和创世块,而其他验证器[s]应该使用该工件.但是第二个验证器的正确配置是什么?它如何从第一个验证器读取生成的工件?

谢谢!

这是第一个验证器的配置:

validator-0:
  image: hyperledger/sawtooth-validator:1.0
  container_name: sawtooth-validator-default-0
  expose:
    - 4004
  ports:
    - "4004:4004"
  entrypoint: "bash -c \"\
      sawadm keygen && \
      sawtooth keygen my_key && \
      sawset genesis -k /root/.sawtooth/keys/my_key.priv && \
      sawadm genesis config-genesis.batch && \
      sawtooth-validator -vv \
        --endpoint tcp://validator:8800 \
        --bind component:tcp://eth0:4004 \
        --bind network:tcp://eth0:8800 \
      \""
Run Code Online (Sandbox Code Playgroud)

hyperledger hyperledger-sawtooth

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