# Libbitcoin for Core people

**URL:** <https://delvingbitcoin.org/t/libbitcoin-for-core-people/1222>\
**Category:** Implementation\
**Tags:** libbitcoin\
**Created:** [October 28, 2024, 7:09pm UTC](https://delvingbitcoin.org/t/libbitcoin-for-core-people/1222 "2024-10-28T19:09:55Z")\
**Posts on this page:** 1\
**Showing post:** 31

<div class="post-metadata">

**Author:** ![evoskuil](https://delvingbitcoin.org/user_avatar/delvingbitcoin.org/evoskuil/32/391_2.png) [@evoskuil](https://delvingbitcoin.org/u/evoskuil)\
**Post date:** [December 2, 2024, 8:09pm UTC](https://delvingbitcoin.org/t/libbitcoin-for-core-people/1222/31 "2024-12-02T20:09:32Z")

</div>

> [@andrewtoth](#):
>
> It is fetching the previous outputs of the inputs.

Ok, that makes sense.

> [@andrewtoth](#):
>
> I don’t see how checking if an input exists could be done without chain context.

I think you mean output (previous output of the input) here as well. If the prevout doesn’t exist then the input script will fail to validate. That’s just a query for the output during block.connect, which requires no order and is performed concurrently across blocks.

In other words, there are other checks: (1) no forward reference, (2) no [internal] double spend, (3) prevout exists and executes successfully. There is also (4) prevout is in the current or previously-confirmed block, (5) prevout is not spent in any previously-confirmed block [not double spent in current block is #2).

---

_[View the full topic](https://delvingbitcoin.org/t/libbitcoin-for-core-people/1222)._
