{"action":"created","issue":{"url":"https://api.github.com/repos/CounterpartyXCP/counterparty-lib/issues/862","repository_url":"https://api.github.com/repos/CounterpartyXCP/counterparty-lib","labels_url":"https://api.github.com/repos/CounterpartyXCP/counterparty-lib/issues/862/labels{/name}","comments_url":"https://api.github.com/repos/CounterpartyXCP/counterparty-lib/issues/862/comments","events_url":"https://api.github.com/repos/CounterpartyXCP/counterparty-lib/issues/862/events","html_url":"https://github.com/CounterpartyXCP/counterparty-lib/pull/862","id":152737461,"node_id":"MDExOlB1bGxSZXF1ZXN0Njg2ODE4ODg=","number":862,"title":"WIP: Let transactions crash in isolation ","user":{"login":"rubensayshi","id":649160,"node_id":"MDQ6VXNlcjY0OTE2MA==","avatar_url":"https://avatars2.githubusercontent.com/u/649160?v=4","gravatar_id":"","url":"https://api.github.com/users/rubensayshi","html_url":"https://github.com/rubensayshi","followers_url":"https://api.github.com/users/rubensayshi/followers","following_url":"https://api.github.com/users/rubensayshi/following{/other_user}","gists_url":"https://api.github.com/users/rubensayshi/gists{/gist_id}","starred_url":"https://api.github.com/users/rubensayshi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rubensayshi/subscriptions","organizations_url":"https://api.github.com/users/rubensayshi/orgs","repos_url":"https://api.github.com/users/rubensayshi/repos","events_url":"https://api.github.com/users/rubensayshi/events{/privacy}","received_events_url":"https://api.github.com/users/rubensayshi/received_events","type":"User","site_admin":false},"labels":[{"id":70723572,"node_id":"MDU6TGFiZWw3MDcyMzU3Mg==","url":"https://api.github.com/repos/CounterpartyXCP/counterparty-lib/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":149572929,"node_id":"MDU6TGFiZWwxNDk1NzI5Mjk=","url":"https://api.github.com/repos/CounterpartyXCP/counterparty-lib/labels/protocol","name":"protocol","color":"207de5","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-05-03T09:52:28Z","updated_at":"2018-09-19T04:43:45Z","closed_at":"2018-09-19T04:43:45Z","author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/CounterpartyXCP/counterparty-lib/pulls/862","html_url":"https://github.com/CounterpartyXCP/counterparty-lib/pull/862","diff_url":"https://github.com/CounterpartyXCP/counterparty-lib/pull/862.diff","patch_url":"https://github.com/CounterpartyXCP/counterparty-lib/pull/862.patch"},"body":"using sqlite `with db:` will use the SAVEPOINT stuff that sqlite has, so we can nest `with db:` statements.  \nwrapping `parse_tx` in a `with db:` and handling exceptions thrown will make it so that the TX is ignored and the node won't crash.\n\na while back @adamkrellenstein was looking into somehow doing this when we had every node on the network crash on 1 bug, I think he was in the understanding that `with db:` would use `BEGIN`/`COMMIT`/`ROLLBACK`, but because we're using sqlite we can actually leverage that it uses SAVEPOINT.\n\nI'm still not 100% sure if this is the right thing to do, I'd rather not ignore errors at all ...  \nNot only does this make it harder to notice errors if there are any, but if an error is thrown that isn't because the TX is funky (eg; maybe DB connection has a hickup or some other external / IO error) then the node will ignore that TX and it won't diverge it's consensus.\n\nI personally don't have a machine available to run a node 24/7 so if any funky errors ever happen, though I've never had one while my node was up for development purposes which means my above concern isn't very relevant. (except for the 0conf TX not found err, but that's not in `parse_tx`). \n\nobviously this change should have a `protocol_changes.json` entry just incase.\n\nalso, can't seem to create a unittest for this, because there's nothing that is supposed to raise an exception...\n"},"comment":{"url":"https://api.github.com/repos/CounterpartyXCP/counterparty-lib/issues/comments/422650517","html_url":"https://github.com/CounterpartyXCP/counterparty-lib/pull/862#issuecomment-422650517","issue_url":"https://api.github.com/repos/CounterpartyXCP/counterparty-lib/issues/862","id":422650517,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMjY1MDUxNw==","user":{"login":"chiguireitor","id":453214,"node_id":"MDQ6VXNlcjQ1MzIxNA==","avatar_url":"https://avatars1.githubusercontent.com/u/453214?v=4","gravatar_id":"","url":"https://api.github.com/users/chiguireitor","html_url":"https://github.com/chiguireitor","followers_url":"https://api.github.com/users/chiguireitor/followers","following_url":"https://api.github.com/users/chiguireitor/following{/other_user}","gists_url":"https://api.github.com/users/chiguireitor/gists{/gist_id}","starred_url":"https://api.github.com/users/chiguireitor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chiguireitor/subscriptions","organizations_url":"https://api.github.com/users/chiguireitor/orgs","repos_url":"https://api.github.com/users/chiguireitor/repos","events_url":"https://api.github.com/users/chiguireitor/events{/privacy}","received_events_url":"https://api.github.com/users/chiguireitor/received_events","type":"User","site_admin":false},"created_at":"2018-09-19T04:43:45Z","updated_at":"2018-09-19T04:43:45Z","author_association":"MEMBER","body":"Closing this to merge the conflict manually."}}
{"actor":{"display_login":"chiguireitor"}}