Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
4 сентября 2017, 2:36:27 PM   # 1
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: Как создать транзакцию с использованием NBitcoin в C #.

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Здравствуй,
Я создаю интернет-кошелек & Я использую C # (WebAPI) в качестве моего поддерживаемого языка сценариев.
Я также использую NBitcoin & Пакеты QBitninja NuGet разработан NicolasDorier.
Некоторые, как я создал проверить транзакцию, но сеть не может транслировать эту сделку.

Команда: - Bitcoin-кли signrawtransaction 010000000001012be
973e52a7f8efbc91ef9c397a81df05c047e8138c76920fd9225df19aaea360000000000ffffffff 0
2a4c0e400000000001976a9140ecd86fcda32df67e7cbd989eddd38d00bb2504f88ac40420f0000 0
000001976a9145da61fbc2b8de68bbe1b666b4e84bec9d2e3edae88ac02473044022061199488e5
5fe9c3db4678eadc08b92de1d0881dd13ac3af5b39b15543ae4c202205ff7aeead9ba8c3f4bc89a с
0614802ae19f781be8bfa8c74fb01bd50b96c7cf4012103e970de664249bb560ec1501ea8a98571 d
a983c899ee02888d6e41aaab2ff56b300000000



 Err. : -  
{
  "наговор": "010000000001012be973e52a7f8efbc91ef9c397a81df05c047e8138c76920fd9225df
19aaea360000000000ffffffff02a4c0e400000000001976a9140ecd86fcda32df67e7cbd989edd d
38d00bb2504f88ac40420f00000000001976a9145da61fbc2b8de68bbe1b666b4e84bec9d2e3eda е
88ac02473044022061199488e5a5fe9c3db4678eadc08b92de1d0881dd13ac3af5b39b15543ae4c 2
02205ff7aeead9ba8c3f4bc89ac0614802ae19f781be8bfa8c74fb01bd50b96c7cf4012103e970d е
664249bb560ec1501ea8a98571da983c899ee02888d6e41aaab2ff56b300000000",
  "полный": ложный,
  "ошибки": [
    {
      "TXID": "36eaaa19df2592fd2069c738817e045cf01da897c3f91ec9fb8e7f2ae573e92b"
,
      "Vout": 0,
      "scriptSig": "",
      "последовательность": 4294967295,
      "ошибка": "Вход не найден или уже потратили"
    }
  ]
}


Демо-код: -

струнное SendBitCoins общественного (INT идентификатор пользователь, внутр walletID, строка DestinationAddress, десятичная сумма)
        {
            пытаться
            {
                вар MasterKey = новый GetMasterWallet (идентификатор пользователя);
                вар PrivateKey = masterKey.PrivateKey;
                Плата за деньги = Money.Satoshis (8476);
                Деньги transactionAmount = Money.Satoshis (Convert.ToInt64 (количество * 100000000));
                вар транзакции = CreateTransaction (идентификатор пользователя, walletID, privateKey.PubKey, transactionAmount, плата, MasterKey);
                вар transactionhex = BuildTransaction (транзакция, PrivateKey, DestinationAddress, сумма, плата);
                вернуться transactionhex;
            }
            улов (Исключение)
            {

                бросить;
            }
        }


общественная сделка CreateTransaction (интермедиат идентификатор пользователя, внутр userWalletID, Публичных sourcePublicKey, сумма денег, деньги плата, ExtKey masterwallet)
        {
            пытаться
            {
                вар INIT = новая сделка ();
                если (userWalletID! = 0)
                {
                    вар клиент = новый QBitNinjaClient (Network.TestNet);
                    вар totalAmount = сумма + плата;
                    долго transactionAmount = 0;
                    вар userRequestAddress = _unitOfWork.UserRequestAddressRepository
                        .GetManyQueryable (х => x.UserID == идентификатор пользователя &&
                        x.UserWalletID == userWalletID && x.Amount > 0 && ! X.IsActive);
                    вар userPrivateWalletKey = новый UserWalletChainService (_unitOfWork) .GetUserWalletKey (userWalletID, masterwallet);
                    вар userPublicWalletKey = userPrivateWalletKey.Neuter ();
                    

                    userRequestAddress.ToList (). ForEach (х => {
                        вар extPubKey = userPublicWalletKey.Derive (
                                        новый ключевой ресурс (Convert.ToString (x.ChainDerivationKey)));
                        // переменная extPrivateKey = userPrivateWalletKey.Derive (
                        // новый ключевого ресурса (Convert.ToString (x.ChainDerivationKey)));
                        client.GetBalance (extPubKey.PubKey.Hash.GetAddress (Network.TestNet), правда)
                        .Result.Operations.ToList (). ForEach (г => {
                            z.ReceivedCoins.ForEach (л => {
                                если (totalAmount.Satoshi > transactionAmount)
                                    //init.Outputs.Add(new TxOut (Money.Coins (1m), GetP2WPKH (sourcePublicKey)));
                                    init.Outputs.Add (новые TxOut (Money.Coins (Convert.ToDecimal ((l.Amount, как деньги) .Satoshi) / 100000000), GetP2WPKH (sourcePublicKey)));
                                //init.Outputs.Add(new TxOut (Money.Coins (Convert.ToDecimal ((l.Amount как деньги) .Satoshi) / 100000000), GetP2WPKH (userPrivateWalletKey.PrivateKey.PubKey)));

                                transactionAmount + = (l.Amount как деньги) .Satoshi;
                            });
                        });
                    });
                }
                //init.Outputs.Add(new TxOut (Money.Coins (1m), GetP2WPKH (sourcePublicKey)));
                вернуться INIT;
            }
            улов (Исключение)
            {

                бросить;
            }
        }


публичная строка BuildTransaction (транзакция Transaction, Key sourcePriveatKey, строка DestinationAddress, десятичная сумма, деньги плата)
        {
            TransactionBuilder строитель = NULL;
            пытаться
            {
                вар назначения = BitcoinAddress.Create (DestinationAddress) .ScriptPubKey;
                

                Монета. [] монеты = transaction.Outputs.AsCoins () ToArray ();
                
                строитель = новый TransactionBuilder ();
                Сделка Ого = построитель
                    .AddCoins (монеты [0])
                    .AddKeys (sourcePriveatKey)
                    .Отправить (назначения, Money.Coins (сумма))
                    .SetChange (sourcePriveatKey)
                    .SendFees (платно)
                    .BuildTransaction (знак: верно);
                если (builder.Verify (TX))
                    вернуть tx.ToHex ();
                еще
                    вернуть "";
            }
            улов (Исключение)
            {

                бросить;
            }
        }


Пожалуйста, дайте мне предложение кто-нибудь знает, что я делаю неправильно.
Billion Dollar Boy сейчас офлайн Пожаловаться на миллиард долларов Boy   Ответить с цитированием Мультицитирование Сообщения от Billion Dollar Boy Быстрый ответ на сообщение Billion Dollar Boy


Как заработать Биткоины?
Без вложений. Не майнинг.


4 сентября 2017, 2:44:09 PM   # 2
 
 
Сообщения: 154
Цитировать по имени
цитировать ответ
по умолчанию Re: Как создать транзакцию с использованием NBitcoin в C #.

Получил 1806 Биткоинов
Реальная история.





Похоже, что вы пытаетесь отправить более Bitcoin, чем адрес имеет, так что сеть отклоняет его. Убедитесь, что блоки являются правильными в сумме, которую вы отправляете.
wavelengthsf сейчас офлайн Пожаловаться на wavelengthsf   Ответить с цитированием Мультицитирование сообщения от wavelengthsf Быстрый ответ на сообщение wavelengthsf

4 сентября 2017, 5:06:36 PM   # 3
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: Как создать транзакцию с использованием NBitcoin в C #.

Здравствуй,
Мои единицы одинаковы.
Я думаю, что сделка, которую я создал не правильно, есть очень ограниченная помощь в этой теме специально в C #.
У вас есть такой вид кода, который предварительно приготовленный будет более полезным.

благодаря
Billion Dollar Boy сейчас офлайн Пожаловаться на миллиард долларов Boy   Ответить с цитированием Мультицитирование Сообщения от Billion Dollar Boy Быстрый ответ на сообщение Billion Dollar Boy

6 сентября 2017, 5:57:48 PM   # 4
 
 
Сообщения: 428
Цитировать по имени
цитировать ответ
по умолчанию Re: Как создать транзакцию с использованием NBitcoin в C #.

Ваша сделка не так! Точнее ваш Tx_in_count является 0, где это должно быть что-то больше и равна 1

01000000 00 01012be973e52a7f8efbc91ef9c397a81df05c ....

Выделенная часть вашего VarInt, который должен указать количество транзакций выходов вы тратите. он показывает 0 здесь. Возможно, вы делаете ошибку в создании VarInt, так что дальше не является допустимым ТМ идентификатор.
Если вы тратите 1 выход, который я предполагаю, что вы, это должно быть просто "01"

КСТАТИ Nbitcoin имеет (почти) в режиме чата здесь: https://gitter.im/MetacoSA/NBitcoin
Кодирование Энтузиаст сейчас офлайн Пожаловаться на Coding Энтузиаст   Ответить с цитированием Мультицитирование сообщения от Coding Энтузиаст Быстрый ответ на сообщение Coding Энтузиаст



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW