0

我正在使用以太坊区块链和使用Ganache实现智能投票系统。根据该系统,选举机构将通过使用他们在区块链中的公共地址来授权人们。然后只有他们才能投票。

但问题是,根据我的代码,每笔投票交易都是由一个区块链账户完成的,因为它总是获得从相同私钥派生的相同凭证。

我想要做的是,对于每个授权选民,我希望应用程序将凭证更改为该特定选民的区块链帐户凭证。因此投票交易将由相关的特定账户完成。有没有办法检索每个人的凭据。或者更改每个登录帐户的凭据?我正在努力做到这一点。

这是一个颤振的应用程序。

这是我的代码,我在其中设置交易凭据。

 Future<String> authorize() async {
    var addressone =
        EthereumAddress.fromHex("0xc347C739ae787a0D9A182efDa9055FAe109F055C");
    var response = await submit("authorize", [addressone]);
    print("deposited");
    return response;
  }

  Future<String> vote() async {
    final addressone =
        EthereumAddress.fromHex("0xc347C739ae787a0D9A182efDa9055FAe109F055C");
    var candidate = BigInt.from(1);
    var response = await submit("vote", [addressone, candidate]);
    print("voted");
    return response;
  }

  Future<String> submit(String functionName, List<dynamic> args) async {
    EthPrivateKey credentials = EthPrivateKey.fromHex(
        "968499dbee4f8b8491d9d0e02ff631347291a41e33dc95033c70758a2e99657b");
    DeployedContract contract = await loadContract();
    final ethfunction = contract.function(functionName);
    final result = await ethclient.sendTransaction(
        credentials,
        Transaction.callContract(
            contract: contract, function: ethfunction, parameters: args),
        fetchChainIdFromNetworkId: true);
    return result;
  }

有人可以帮我解决这个问题吗?:(

4

1 回答 1

0

对于每个授权选民,我希望应用程序将凭证更改为该特定选民的区块链帐户凭证。

您可以使用 Solidity 编程语言为您的投票智能合约编写任何类型的规则。这包括投票权的分配方式。然而,“如何创建基于智能合约的投票系统”对于 StackOveflow 的回答来说主题太宽泛,更多的是大学课程的材料或非常长的在线教程。

于 2021-01-14T08:44:22.907 回答