've locally fixed some symbol issues. next issues is the winston_to_ar function [i spent some time converting this to a Decimal but the issue is the server expects raw winston, not decimal ar] 0903 i've foudn the python decimal module at https://docs.python.org/3/library/decimal.html . this would be the appropriate way to handle AR in python. 0910-0914 i tried converting the functions to use decimal. i wrote out a test script and ran it under the debugger, and it actually ran fine. i'm stepping through it and the value looks right. the txid isn't showing up on viewblock yet. 1916 it's actually showing this error: `ar.ArweaveException: Bad reward field, expected string-integer but got 0.000066232358` . clearly the reward should be in winston instead of ar here, finally noticing this copying it over. but first it seems i'd better figure out why that error isn't getting reported when the test runs, and resolve that. 1918-1924 for some reason this transaction code is written to absorb all send errors silently O_O . apparently i did this when converting code without exceptions at all, so it would behave the same. 0932 the server is rejected it without an error message [status code 400, maybe i'll look it up]; makes sense to bisect with the old official code, assuming it used to work -- [spam] {apologies for this spam message, i have a psychological issues and cope with them by storing public notes. [hence arweave.]} working on fixing bugs in pyarweave. Transaction.sign() and Transaction.send() don't work, probably because i was doing everything through bundlr or doing readonly stuff. the tests are also failing, which is strange because it's supposed to check those before it lets me commit changes. i've fixed Transaction.sign() . Transaction.send() now has some syntax errors blocking it. i'm planning to update this as i work on it 0857-0932 (UTC-5) i engaged a number of bugs and things send without crashing now, but the code is still generating invalid transactions 1025 i've found the original official code publishes the tx successfully. i'm guessing the error happens in calculating the signature or the data root. i'm considering finding it by stepping through my code and the old code and comparing values. signatures may not be deterministic, but they can be cross-checked by verifying them. 1027 i'm running into issues engaging my body. i used my second wind with the energy from breakfast. i really want to do this. 1030 i checked the successful txs on viewblock, and they are not there. but they are on nearby peers. seems peers are better to check than viewblock. 1032 i'm spending some time handling dyskinesia. my body starts writhing around spasmodically when i try to engage persistent tasks. 1042 i'm working a little more after coping by spamming a mailing list with part of a psychotic coping story. notes: - [x] original code stored `.reward` in winston as a str. current code was for some reason using AR. 1048-1049 went through some psychotic spasms for which i need to find medical treatment. always very nice to be able to continue same work afterward rather than being somewhere new. - [x] the two sets of code are making the same data roots and the same sig data. 1103 it's a little difficult to check the sigs. turns out the old code is a stub. -- [spam] {apologies for this spam message, i have a psychological issues and cope with them by storing public notes. [hence arweave.]} working on fixing Transaction.sign/send bugs in pyarweave. 0857-0932 (UTC-5) i engaged a number of bugs and things send without crashing now, but the code was still generating invalid transactions 1025-1027 i found the old code was successful, and made a plan for comparing the two codepaths to find reasons for failure in the new code. i began encountering repeating and varied issues engaging my body, an unaddressed problem i have. 1030-1042 i figured out viewblock doesn't load transactions fast enoguh for debugging, and used nearby peers. i moved through some spasmodic dyskinesia-like issues and spammed a mailing list with a psychotic coping story part. - [x] original code stored `.reward` in winston as a str. current code was for some reason using AR. 1048-1049 went through some psychotic spasms for which i need to find medical treatment. always very nice to be able to continue same work afterward rather than being somewhere new. - [x] the two sets of code are making the same data roots and the same sig data. 1103 it's a little difficult to check the sigs. turns out the old code is a stub. 1118 . signature verification in pyarweave: `ar.wallet.PKCS1_PSS.new(wallet.rsa).verify(ar.wallet.SHA256.new(data), signature)` 1129 i've filled out the old verify stub and have debuggers in both codepaths producing a tx with the same id. next is comparing transmission of the txs. might take a break due to a sudden headache; not my pref. given big bug remains. - [ ] the headers for the working code are `{'Content-Type': 'application/json', 'Accept': 'text/plain'}` - [ ] found a bug i produced during this attempt to fix things, where the quantity is converted to winston twice :partying_face: 1150 i thought i addressed the double conversion but am now getting differing sig data 1155 i stepped through the sign function and this time i got identical data; not sure what i did wrong the first time ---- [spam] {apologies for this spam message, i have a psychological issues and cope with them by storing public notes. [hence arweave.]} working on fixing Transaction.sign/send bugs in pyarweave. 0857-1027 (UTC-5) i fixed things that actually crashed when a send was performed, but the txs were still invalid. i found the old code worked great, and made a plan to use it to fix the new. i began encountering repeating and varied issues engaging my body, an unaddressed problem i have. 1030-1042 i figured out viewblock doesn't load transactions fast enough for debugging, and used nearby peers. i moved through some spasmodic dyskinesia-like issues and spammed a mailing list with a psychotic coping story part. - [x] fixed .reward being in AR instead of winston-str 1048-1049 went through some psychotic spasms for which i need to find medical treatment. always very nice to be able to continue same work afterward rather than being somewhere new. - [x] verified data roots and sig data correct 1103 it's a little difficult to check the sigs. turns out the old code is a stub. 1118-1129 [x] implemented signature verification which was apparently just a stub. got debugging to the point where txs in both old and new code had the same ids. next: transmission. got a strong headache but stayed with aid of writing these notes. - [ ] the headers for the working code are `{'Content-Type': 'application/json', 'Accept': 'text/plain'}` - [ ] found a bug i produced during this attempt to fix things, where the quantity is converted to winston twice :partying_face: 1150 i thought i addressed the double conversion but am now getting differing sig data 1155 i stepped through the sign function and this time i got identical data; not sure what i did wrong the first time 1158 i found the txs were generating differing hashes now even though i thought they had identical signatures. figuring out debugging. 1200 fire alarm went off for just a minute, very weird. had a window open already, and stove was off. 1211 re-assigning the signature variable to what appeared to be the same string got the ids to match --- [spam] {apologies for this spam message, i have a psychological issues and cope with them by storing public notes. [hence arweave.]} working on fixing Transaction.sign/send bugs in pyarweave. 0857-1027 (UTC-5) i fixed things that actually crashed when a send was performed, but the txs were still invalid. i found the old code worked great, and made a plan to use it to fix the new. i began encountering repeating and varied issues engaging my body, an unaddressed problem i have. 1030-1042 i figured out viewblock doesn't load transactions fast enough for debugging, and used nearby peers. i moved through some spasmodic dyskinesia-like issues and spammed a mailing list with a psychotic coping story part. - [x] fixed .reward being in AR instead of winston-str 1048-1049 went through some psychotic spasms for which i need to find medical treatment. always very nice to be able to continue same work afterward rather than being somewhere new. - [x] verified root calculation 1103 it's a little difficult to check the sigs. turns out the old code is a stub. 1118-1129 [x] implemented signature verification which was apparently just a stub. got debugging to the point where txs in both old and new code had the same ids. next: transmission. got a strong headache but stayed with aid of writing these notes. - [ ] the headers for the working code are `{'Content-Type': 'application/json', 'Accept': 'text/plain'}` - [x] fixed double-conversion of ar to winston 1150-1202 i engaged some issues with my debugger where i seemed to assign a signature value in a way that did not preserve it, when copypasting it in. different checks seemed to get different results. during this my fire alarm went off for no apparent reason, with a window already open. 1211-1222 re-assigning the signature variable to what appeared to be the same string got the ids to match (went through this twice) - [ ] seems good to try larger public keys - [ ] found i'm encoding the entire data as the data root when sending. :partying_face: final thread, messages delinated by '---': --- [spam] {apologies for this spam message, i have a psychological issues and cope with them by storing public notes. [hence arweave.]} working on fixing Transaction.sign/send bugs in pyarweave. 0857-1027 (UTC-5) fixed crashes, txs still invalid. i found the old code worked great, and made a plan to use it to fix the new. i began encountering repeating and varied issues engaging my body, an unaddressed problem i have. 1030-1042 i figured out viewblock doesn't load transactions fast enough for debugging, and used nearby peers. i moved through some spasmodic dyskinesia-like issues and spammed a mailing list with a psychotic coping story part. - [x] fixed .reward being in AR instead of winston-str 1048-1049 went through some psychotic spasms for which i need to find medical treatment. always very nice to be able to continue same work afterward rather than being somewhere new. - [x] verified root calculation 1103 it's a little difficult to check the sigs. turns out the old code is a stub. 1118-1129 [x] implemented Wallet.verify() which was apparently just a stub. got debugging to the point where txs in both old and new code had the same ids. next: transmission. got a strong headache but stayed with aid of writing these notes. - [ ] the headers for the working code are `{'Content-Type': 'application/json', 'Accept': 'text/plain'}` - [x] fixed double-conversion of ar to winston 1150-1202 i engaged some issues with my debugger where i seemed to assign a signature value in a way that did not preserve it, when copypasting it in. different checks seemed to get different results. during this my fire alarm went off for no apparent reason, with a window already open. 1211-1222 re-assigning the signature variable to what appeared to be the same string got the ids to match (went through this twice) - [ ] try larger public keys - [x] fixed json encoding bug, data_root vs data 1248-1254 the remaining issue is a test failure reserializing `sS9YM4osy0So7t0aakYH18oyYz9WI2A48QvBYDEDmLw` --- 1329 (UTC-5) i've found the reserialization bug relates to the quantity field. maybe it was triggered by a tx that actually has a quantity; most just store data and have zero quantity. 1332 it seems it relates to mutation of the field in between deserialization and reserialization 1332 i'm experiencing strong psychotic inhibition and considering leaving this system to writhe on a couch or floor 1334 i think i thought of a way to quickly resolve the issue. it must be from the change to how quantity is held, in the constructor and/or in the serialization. 1337 passing the quantity in AR rather than winston resolved the reserialization bug. - [x] add the failing reserialization tx as a test case. include json data so as to test the transmission issue also engaged today. 1357 i'm moving the test to a test case, and it seems it is no longer passing. i guess i must have just assumed it worked after i made the change. looks like there is a further winston/ar conversion issue. 1358 it's because i was testing with unfixed code i had installed systemwide 1415 reserialization test passes between json and bytes both ways --- 1423 i'm guessing that core arweave would handle longer keys fine, but that bundlr wouldn't since the owner size i think is fixed in ans104. maybe if it still used ans102 it would work. haven't checked these things a worry is that the tx id is made from the hash of the signature, and rsa signatures appear to be nondeterministic i.e. to have a nonce in them. it seems a little worrisome that anybody could replace a tx if they can make an sha256 collision, given bitcoin gives constant economic incentive for cryptanalysing sha256 . seems this would be better if the data were added adjacent to the sighash, rather than treating the signature itself as a secure hash. anyway arweave already use 4k-sized keys. i'm running a test with 64k-sized keys. 1446 i found there are bugs in pyarweave's wallet generation, that i am addressing. custom bitcount was not respected, and the output filehandle was wrong 1513 i've found an arweave strangeness where when i post binary data to a peer's /tx2 route, i get the reply 'invalid json'. the tx2 route i thought was supposed to handle binary, not json. this is kind of a lot of nested things to address, so i'll organise what i've done up and publish a fixed thing to the python packaging index. --- 1518 published version with working non-bundled deployment :smile: the reason i didn't know this didn't work was that there were no actual transaction test cases. ---