Bitcoin full node and query server

Apr 5, 2018

View in context in the libbitcoin Slack #general mirror.

evoskuil08:38
I think it would be better to use the terminology of the (virtual) machine implementation. Better yet, create a topic to explain the operation of the machine.
7 replies · James C., evoskuil, Slackbot · last Apr 05, 2018
James C.19:28
machine chapter would be cool, will do!
evoskuil19:30
It's best to think of it as a virtual machine that has a program environment that is initialized with certain state and an interpreter that evaluates the program.
James C.19:48
This is cool stuff! i noticed the program class has both script pointer & stack state in it. i need to dig thru how the stack(s) is affected by interpreter step by step... I couldn't figure out previously, why the input script is evaluated separately from the output script, even though the input script end-state is carried over to the output script program ... https://github.com/libbitcoin/libbitcoin/blob/master/src/chain/script.cpp#L1387-L1395
(edited)
evoskuil19:50
It used to work that way but satoshi had to split them due to a vulnerability.
Slackbot19:50
👻
James C.19:51
wow 🙂
James C.20:03
Found it, pushdata opcode at end of input script will render the output script into a single constant, evaluating to true.