FAQ

Java SDK

'io.blocko.coinstack.exception.MalformedInputException: Invalid private key' 오류가 발생할 때

잘못된 형식의 private key가 사용되었을 때 발생하는 오류입니다. private key를 확인하고 올바른 형식의 키를 사용해 주시기 바랍니다.

'io.blocko.coinstack.exception.MalformedInputException: Invalid output' 오류가 발생할 때

기본적으로 0.00005 미만의 소량 비트코인 전송시 발생하는 오류입니다. 소량의 비트코인 전달이 꼭 필요한 경우 명시적으로 TransactionBuilder 클래스 객체의 allowDustyOutput 값을 true로 설정 후 트랜잭션을 생성하시기 바랍니다.

'io.blocko.coinstack.exception.InsufficientFundException: Insufficient fund' 오류가 발생할 때

트랜잭션을 보내는 주소의 잔고가 부족할 때 발생하는 오류입니다. 남은 잔고를 확인 및 충전 후 다시 시도하시기 바랍니다. 트랜잭션을 성공적으로 보내기 위해서는 보내려는 액수에 더해 적절한 수수료를 입력해야 합니다. (최저 0.0001 BTC) 비트코인을 전송할 때뿐만 아니라 오픈어셋의 발행 및 전송, Document Stamp의 발행에도 내부적으로 트랜잭션이 발생하므로 이를 위한 수수료를 입력해야 하고, 주소에 해당 수수료가 남아 있어야 합니다.

Bitcoin Network 일반

Public Bitcoin Network 잔고 충전하는 방법

먼저 코인스택 API 혹은 기타 bitcoin 지갑 서비스를 통해 나만의 주소를 생성합니다. 이후 bitcoin 거래소를 통해 bitcoin을 구매하여, 나의 주소로 이체 요청할 수 있습니다.

트랜잭션이 정상적으로 처리되었는지 조회하는 방법

검증되어 블록에 포함, 전파된 트랜잭션의 경우 코인스택 API를 통해 트랜잭션을 조회하면 트랜잭션 정보에 블록 해시와 번호가 포함되어 반환됩니다. 아직 처리가 되지 않고 대기중인 트랜잭션의 경우 블록 정보가 생략되어 나옵니다.

public bitcoin에 요청한 트랜잭션의 경우, 웹사이트를 통해 블록 정보, 거래 내역등을 조회해 볼 수 있습니다. 당사에서는 https://watch.blocko.io/ 을 통해 해당 정보를 제공하고 있습니다.

대부분의 경우 블록에 포함된 트랜잭션은 불가역성이 보장되지만, 드물게 거의 동시간에 블록이 생성되어 동일 번호의 블록이 2개 이상 존재하는 경우가 있습니다. 이 경우 몇 번의 블록 생성을 거쳐 더 안정적인 블록 하나만 채택이 됩니다. 따라서 큰 금액을 거래할 경우 해당 트랜잭션이 블록에 포함되고 6개 이상의 블록 번호가 더 증가되는 것을 확인하여 트랜잭션이 안정적으로 블록체인에 기록되었음을 확인하는 편이 좋습니다.

충분한 잔고를 충전했음에도 불구하고 Insufficient fund 오류가 발생할 때

충전을 위한 트랜잭션이 아직 블록에 포함되지 않았거나 안정적으로 사용하기에 충분한 블록의 번호(public bitcoin network의 경우 최소 2번)가 확보되지 않았을 경우 해당 오류가 발생합니다. 트랜잭션이 블록에 포함된 후, 혹은 충분한 번호가 확보된 후 다시 시도하시기 바랍니다. public bitcoin의 경우 블록 번호가 하나 증가하는데 평균적으로 10분이 소요됩니다.

Public Bitcoin Network에서 정상적인 트랜잭션이 블록에 포함되지 않을 때

사용자가 트랜잭션을 bitcoin network에 전송하면 무조건 바로 다음 블록에 포함되지는 않습니다. 트랜잭션은 일단 각 서버의 메모리풀이라는 공간에 임시로 저장됩니다. 이후 주기적으로 마이닝이라는 블럭 생성 과정을 통해 메모리 풀에 있는 트랜잭션 중 일부가 선별되어 블록이 됩니다. 이 때 트랜잭션이 선별되는 기준은 마이닝하는 서버의 정책에 따라 다르지만 일반적으로 높은 수수료를 지불하는 트랜잭션을 우선적으로 채택하게 됩니다. 따라서 최저 수수료는 KB당 0.00001 BTC 이지만, 이 보다 높은 수수료를 지불할수록 트랜잭션이 블록에 빨리 포함될 가능성이 높아집니다.

개인키를 잃어버렸을 때, 주소에 남아 있던 잔고를 되찾을 수 없나요?

개인키를 잃어버렸을 경우 해당 주소에 있는 잔고를 되찾을 방법은 없습니다. 따라서 개인키를 잃어버리지 않도록 각별히 유의하시기 바랍니다. 이 외에 Multisig 기능을 활용하면 서명에 참여한 개인키의 일부를 유실했어도 나머지 키로 잔고를 찾을 수 있습니다. 자세한 내용은 7. Coinstack Multisig 장을 참고 바랍니다.

기타

동시에 여러 트랜잭션을 보낼 때의 유의 사항

비트코인에서 사용자의 잔고는 아직 사용되지 않은 output들(utxo)을 수집 및 합산하여 표현됩니다. 각 utxo는 모두 별개의 트랜잭션에 포함되어 있기 때문에 블록체인의 여기저기에 흩어져 있을 수 있습니다. 코인스택의 transaction builder는 트랜잭션을 생성할 때 해당 주소와 연관된 utxo들을 사용자 대신 자동으로 할당해 줍니다. 따라서 동시에, 혹은 다음 utxo가 반환되기 전에 트랜잭션을 여러 번 생성하면 utxo가 중복 사용되는 경우가 발생할 수 있습니다. 그러므로 여러 개의 트랜잭션을 생성해야 하는 경우 트랜잭션 생성 간 충분한 시간 간격을 두거나, 트랜잭션 전송이 실패하는 경우 일정 시간이 지난 후 재시도해야 합니다.

results matching ""

    No results matching ""