развернуть договор о надежности с C # - PullRequest
0 голосов
/ 03 ноября 2018

Я занимаюсь разработкой приложения на Ethereum blockchain. Я использую Solidity для контракта и Nethereum c # для подключения к контракту. Я как-то новичок в Ethereum, и это мое первое приложение в блокчейне! Я хочу развернуть свое приложение в одной TESTChain первой,

  • Я нашел частную цепочку тестов с сайта Nethereum Docs (https://nethereum.readthedocs.io/en/latest/nethereum-smartcontrats-gettingstarted/)

  • создал мой простой контракт с Remix и получил ByteCode.

  • Написание простого кода подключения для развертывания и подключения к контракту.

Проблема в том, что код C # ничего не отвечает после отправки запроса на развертывание контракта. вот мой код

контракт хорошо создан на ремиксе, и в запущенной вкладке он работает

  public class DeploymentTest : ContractDeploymentMessage
        {
      public static string BYTECODE = @"0x....";// removed it because of long string

      public DeploymentTest() : base(BYTECODE) { }
        }

      public async Task ConnectToTest()
            {
                var url = "https://github.com/Nethereum/TestChains";
                var pass = "0xb5b1870957d373ef0eeffecc6e4812c0fd08f554b37b233526acc331bf1544f7";
                var acc = new Account(pass);
                var chain = new Web3(acc, url);
                var deploymentMessage = new DeploymentTest();
                var deploymentHandler =  chain.Eth.GetContractDeploymentHandler<DeploymentTest>();

                 // this point just waited and does not return anything
                var transactionReceipt = await deploymentHandler.SendRequestAndWaitForReceiptAsync(deploymentMessage);
                var contractAddress = transactionReceipt.ContractAddress;

                }

Может ли кто-нибудь мне помочь, я не настаиваю на развертывании с кодом, это может произойти в любом случае, но после развертывания мне нужно подключить его и вызвать некоторые функции. Спасибо

EDITED

Я скачал сеть TESTChain для Windows, и она работает нормально, похоже, порт по умолчанию - 8545 для http: localhost. но он все равно не подключается к цепочке

    var web3test = new Web3(); // also tried new Web3(http://localhost:8545);
    var isMining = await web3test.Eth.Mining.IsMining.SendRequestAsync();
    var accounts = await web3test.Eth.Accounts.SendRequestAsync();

это проблема с моим соединением? Я полностью отключил брандмауэр MacAfee.

enter image description here

ИЗД. 2

Я изменил свою машину, и она работает на моем другом ноутбуке, я не могу найти проблему. Я не знаю, если я просто деинсталлирую mcaffe, все будет хорошо или нет? Кто-нибудь имеет представление о проблемах брандмауэра или других проблемах?

1 Ответ

0 голосов
/ 06 ноября 2018

Я нашел проблему, это было в моем коде c # Функция, которая вызывает код, была в ожидании,

Main()
{
TestConnection().wait(); // this is not proper 
}

so I changed it to TestConnection(); and it works
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...