2017-11-29 2 views
1

저는 C#과 NBitcoin을 사용하여 직접 프로그램을 작성하고 있습니다. (책 "Programming Blockchain"읽기) Bitcoins를 보낼 수 있지만 매우 복잡합니다. 이는 거래 ID에 대한 이해가 부족하기 때문입니다.Bitcoin 거래 ID를 얻는 방법/이해하십시오

지금은 내 Bitcoin에서 마지막 트랜잭션 ID를 가져와야합니다. 그리고이 신분증의 도움으로이 Bitcoin을 다른 곳으로 보낼 수 있습니다.

이것은 또한 내 주요 문제입니다. 내가받은 모든 BItcoin의 모든 트랜잭션 ID를 저장해야합니까? 이 문장에서 나는 "Bitcoin"을 사용하여 Bitcoin을 표현합니다. 만약 내가 2 Bitcoins (1 + 1)를 받았고 지금 1.5 BItcoin을 보내고 싶은 주소가 있다면? "완전한"동전 하나를 쓰면 거래 ID를 잊어 버리고 나머지 절반 중 하나만 유지하면됩니까?

더 명확 내 혼란을 표현 만들려면 : 를 내가 주소 (ABCDEFGH)을 가지고 있고 나는이 (가) 전송에 관여하지 않았기 때문에 10 개 개의 서로 다른 거래 (트랜잭션 ID 1-10) (somone에 사람들 10 Bitcoins을 받았다 그것에게 저에게 재능이 있습니다) 나는 그 10 개의 거래의 거래 ID를 모른다. 프로그래밍 방식으로 어떻게 얻을 수 있습니까? 모든 TransactionID를 얻은 후에는 이제 모든 트랜잭션 ID를 기록해야하며 향후 지출을 위해 내 ABCDEFGH 주소를 추적해야합니까? 아니면 "이 금액 중 x 개의 금액 사용"이라고 말할 수있는 방법이 있습니까?

내가 책을 읽었을 때 나는 어떻게 든 트랜잭션 당 1 Bitcoin을 항상 소비해야한다는 것을 알고 있었다. 그래서 0.3 비트 코인을 보내고 싶다면 0.3 비트 코인을 리시버에 보내고 0.7 비트를 나에게 보냅니다.

이처럼 programm에 할 수있는 방법이 있나요 :

트랜잭션이 (MoneyAmount, RecieverAddress, SenderAddress); 내가 Console.WriteLine을 사용하는 경우

var balance = client.GetBalance(new BitcoinPubKeyAddress(bitcoinPrivateKey.GetAddress().ToString())).Result; 

var tid = new List<String>(); 
foreach (var operation in balance.Operations) 
       //Console.WriteLine(operation.TransactionId.ToString()); 
       tid.AddRange(operation.TransactionId.ToString()); 

내가 올바른 트랜잭션 ID를 얻을 :

+0

요컨대 : 어떻게 동전을 소비 할 수 있도록 프로그래밍 방식으로 주소의 TransactionID를 얻습니까? – Klark

답변

0

나는 내가이 작업을 수행하는 방법하지만 C#을 지혜의 마지막 비트가 누락을 발견 생각합니다. 하지만 어떤 이유로 나는 List에 TransactionID 문자열을 추가 할 수 없다. "문자열"을 System.Collections.Generic.IEnumerable로 변환 할 수 없다고 말합니다.

+0

괜찮 았어. 해결 방법은 AddRange 대신 tid.Add (...)를 사용하는 것입니다. – Klark

관련 문제