[spam][crazy][wrong] considering timestamps
crazy karl is back! i've been chatting with some language bots online for this junk but let's try it here on the list again it's 16:13 pm that timestamping stuff sounds like the shit! i bet the german government even has a contractor to point people to it. i've downloaded the python client, and i've downloaded the python library that the python client interfaces with. let's hack it and op return some stuff! OMIGOD OP RETURN OMIGOD. My op return is totally worth $65k price tickers. here we go. 16:14 . the plan will be ... make the _simplest_ change to this client, op return "hello world", and find the tx on a block explorer. maybe i'll store the change in a fork, too. it's 16:15 and i have cmds.py open i think i'll make a slightly better change: i'll add a command to pin manual data. it's 16:18 and i've implemented most of the command function; it's just a copypaste with mutations. i'm on the final section where a verification doc is written somewhere to the filesystem. 16:20 something's not quite right here: i might have missed something in my brief review of the source, not sure yeahhhhhhhhhh dang the thing i thought could just be a string is some more complex object. it's hard for me to navigate between the client and package code, i get very frustrated trying to control my hands and my vision and stuff. it's 16:22 . k better spend some time trying to understand that or find different task.
16:23 arright! my eyes were crossed and i missed that the merkle_tip / timestamp object is not raw data: it is an object with a `msg` property that contains the raw data. BLARGH. must struggle to continue. 16:24 ! struggle. stuggle x 2. put eyes at terminal. there we go. 16:24 ok goal is what? we have timestamp.msg we need timestamp object. what produces timestamp obhject? find function that returns it. 16:25. -> make_merkle_tree function makes one. it is probably a class from imported library. plan: import manually in pthon repl. read help. also! python trick! `import inspect; print(inspect.getsource(anything))` <- outputs source code for funcs. better than help command. 16:26 . 16:26 . i'm laughing and having trouble controlling my arms and head. onward! i keep laughing instead of coding when i try to code. we are not talking about boss torture. we are just coding. no need for laughter. onward! 16:27 . -> make_merkle_tree is important from library. 16:28 -> it's at github.com/opentimestamps/python-opentimestamps (i had already cloned this when my net was going at 7kB/s earlier today) in opentimestamps/core/timestamp.py ! 16:29 it doesn't instantiate the object, just uses its methds. ummmmmm i kinda want to run it under pdb to find the object but maybe i'll trace it back another step. 16:30 16:31 -> it's made from the `timestamp` of a DetachedTimestampFile object. grep. 16:32 -> timestamp attribute is passed into the constructor and used straight . trace back another step -> found Timestamp class, still 16:32 16:33 -> .msg is a bytes -> __init__ takes only msg -> can hold attestations and ops -> opentimestamps.core.timestamp.Timestamp woohoodlywootywoo! 16:34 dang i'm laughing again. dang. honestly laughing is lots nicer than other things my brain and body can do. but right now: work. 16:34. 16:35 -> okay so now i guess i'd better review Timestamp to make sure none of the fancy attestation behaviors mutate the msg attribute 16:37 blargh i'm confused! my issues are complaining there is too much to track here at once. what if it doesn't ever mutate msg ever, and my original post was flawed? maybe it stores data that can be checked without access to the timestamp doc already! who knows! 16:37 i am really confused! uh-oh! oh btw recently i made an improvement to the GPT language model I called GPTb . it's at https://github.com/xloem/GPTb . It's 16:39 . i'll try to look at this a little bit more
uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh what was the goal we want data that somebody physically and network isolated can independently verify, stored on a blockchain this isn't hard. you just put it in an op_return.
i know! i'll just copy the op return code out. i don't need to review the whole timestamping protocol omigod. i just need the op return bit.
hey! it's magically in front of me! some dissocaited part of me helped me out. t's 16:43 . i wonder what file this is. ooooh same file. cmds.py . hey! that means i can add it as a cli command again! 16:44 . -> we'll need whatever is passed as setup_bitcoin to the bitcoin func. 16:47 OMIGOD I IMPLEMENTED THE COMMAND FUNCTION omigod. now: to make it callable. also everything i make has about 7-12x as many bugs as expected these months. i think i might have palsy. dunno. new doctor this week. 16:48 -> looks like command is spawned from args.py 16:51 i'm handling a strong inhibition around lookiing up documentation on something. i've now forgotten what it is. haven't started looking up yet. argparse: if there is a bytes metavar type, or if i'll be doing string conversion myself 16:51 16:52 looks like it makes the most sense to load a str and parse it myself 16:58 yay! i made mutations, stuff. i have a draft. i have left bits unimplemented to handly my dwindling working memory. yay saved! i want to review briefly to see if something i left unimplemented is obvious. 16:59. it was good i did that. the command wasn't being handed off and it would have been hard to find. 17:00 i'm gonna try passing --help to it and see if it spews my options out! i like to install dev packages with `pip3 install .` from the dev directory, but i want to learn to stop because pip always contacts the internet needlessly. 17:01 i checked ls -lrt ~/.local/bin and it looks like its binary is called `ots` NOOO BUGS. Bugs are our friends. We learn from and protect them. How can I honor the life in this bug? IndentationError: unexpected indent the bug is saying that i am not paying enough attention to how my hands move and what i see after they do, maybe. dunno =/ `python3 setup.py install --user` 17:02 same error somewhere else. did not give the bug sufficient honor. 17:03 oh no it's the same place. ummm k setup.py install --user didn't overwrite pip's /bin/ file. 17:04 mutually exclusive arguments must be optional. blargdyblargdyblarg y'know i've read about argparse many itmes over the years. i should invest some time in making cliff notes of my own experiences. sometimes i chat with my therapist about how i will be an expert when i have dementia. it will just be like the same thing, i will know exactly how to handle it. you basically have to wait until something makes sense. blarg now i'm laughing again grr. 17:05 `required` is a boolean parameter passed to `add_argument`. so indeed. 17:06 yayy installing. i am still outside !!! i have not changed my name to undiscussed horrific abuse. yet ! uhhhh maybe a very bad time to share that bit unsure. 17:07 'required' is an invalid argument for positionals. it's positional. i can copy format from a non-positional argument in same file. i remembered a little :) 17:08 that you pass -- to non-positional arguments. it was familiar when i saw it ! yayyy --help confetti everywhere! fake confetti. no messes. 17:09 $ ots opreturn --help usage: ots opreturn [-h] [-8 UTF8 | -x HEX] optional arguments: -h, --help show this help message and exit -8 UTF8, --utf8 UTF8 utf8 OP_RETURN data -x HEX, --hex HEX hex OP_RETURN data yayyyy blargh. 'setup bitcoin' is not defined oh i just remembered. it outputs the block hash but not the transaction hash. tx hash is good identifier, gonna spend some time see if i can add it. 17:10 17:11 oooh it already outputs the txid while waiting for it to confirm! great! let's find the next bug 17:12 ok. for bitcoin it basically just uses a local node. maybe the calendar servers can do this too, dunno, would have to check their protocol. so, i'll save this to a github fork and work on syncing a node. i rarely sync a node to completion. oh hey maybe it oculd output the raw transaction for users to publish themselves !!! i dunno! save first. think later. 17:13 17:15 prototype opreturn code uploaded to https://github.com/xloem/opentimestamps-client in branch opreturn
17:20 ok so i have a fancy shmancy linux wifi dongle with an extended antenna. i am rocking the millenial software hobbyist. the reason for this is that i am outdoors. downloaded a blockchain will be hard. it's 17:20 ! 17:21 i build my blockchain nodes from source. I do not question this. Nor should you. Maybe I have some source for bitcoin core somewhere here already. 17:21 let's check their website the bitcoin project is ridiculous like ????? . i think when i'm on their dev list, that i must be on like a fake list to put worrisome people on or something. it makes no sense. maybe i just haven't put my 2020 trolldar on properly. bitcoin is at https://github.com/bitcoin/bitcoin it's 17:23 blargh if i do this i will have to spend like $50 to pin a 'hello world' msg won't i no! it will likely be less! like maybe $49! it's 17:24 and i'm cloning a git repository. this reminds me there are other repos on my cloning queue. it's 17:25 let's talk about chatbots. not _real_ chatbots. language model bots. no, wait, maybe let's not. it's 17:25 and my clone is 97% done. 99% . yayishness. 17:25 . nowadays when i want to figure out what branch to build, i do `git tag` and look for the latest tagged release, (v22.0 here maybe), then i do `git branch --all --contains <tag>` to figure out what their release branch is. 22.x it's 17:27 and libtoolize is copying files. (part of autotools) i wonder if i'll need to install a funny version of an old library that was satoshi-era like often happens. 17:28 `make -j8`. configure output looked fine, i think they changed the wallet format to sql to focus and reuse effort better. this will take a while, but maybe in 8 months i'll remember this goal and have a bitcoin client already built! hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm maybe i should install a binary format. i probably don't have their glibc on this silly rhel7 system. hrm. hrm. hrm. well i made the funny code mutation! that's a success. i could also run it in a vm or something. maybe it will be done building soon! i can write random things here while i wait. maybe i can give it half an hour. 17:30 the plan is to build bitcoin, and sync the blockchain, in like 30 seconds, on an old system. in 30 seconds, once the blockchain is synced, i can uhhhh what was i doing. i can broadcast an op return transaction! omygoodnesso! only 30 seconds. when the blockchain is synced. after the client is built. OR! or. I could upload the transaction to a 3rd party service! i bet blockchain explorers let you broadcast transactons! maybe! maybe! so there's another option. i guess ... using the existing ..... uh-oh ! inner issues! hmm. 17:33 i'm kind of drfiting, i'll send this off
it's 5:30a the following day and i'm having trouble moving my legs. i'm outdoors under a tarp shelter I put up recently, in four nested sleeping bags. it's raining on the tarp and dry in here. since I was having trouble standing I was looking through opentimestamps a little on my phone, which disabled airplane mode on its own some time while I was asleep. it looks like the calendar servers also do blockchain publishing remotely, and their protocol doesn't appear to require data other than the op_return payload, although i'm not certain of this. here's what I found: - they take only this payload when publishing - they expect a bitcoin daemon to be running on the server since the client also locally performs bitcoin publishing, they probably minimize their use of their blockchain, dunno. it's 5:34 and maybe i'll stand up! pretty hard. hmm. it's easier to stand up when there's a confident reason. let's check out that opentimestamps server behavior. the server is at https://github.com/opentimestamps/opentimestamps-server possibly. 535 -> the max length accepted is a constant called MAX_DIGEST_LENGTH 537 the timestamp is submitted to an aggregator attribute of the rpc handler self.aggregator.submit(digest) . I don't see where aggregator is set yet. the max digest length appears to be 64 bytes. 539 aggregator is manually set by StampServer which accepts it to its constructor second parameter, after address 541 the otsd entrypoint is in the root folder of the repo it instantiates an Aggregator class 543 Aggregator is in calendar. in its submit function it has further code for adding a nonce server-side, with specific purpose of preventing control of published data by the client. it's possible this was done poorly, but it seems calendar servers are unlikely to be good for publishing data.
742 ok. let's try an old version of bitcoin while waiting for these sources --- but wait! if I want to sync a node, I'll need more than 17KB/s anyway! so instead, maybe some network debugging. 743 I have one of those atheros ar9271 linux usb wifi dongles. the kernel driver and dongle have a symbiotic bug where when the signal is poor or the mtu too high the driver can corrupt the kernel, or somesuch, but everybody keeps using them anyway because they have open source firmware. I wonder if I have my kernel sources. i've plugged the dongle in! it looks like the device is recognised ok (i've been fudging things for weeks so crashes are much rarer now) but it's not getting an ip address. this probably means the issue in is the router I guess 747 inhibition around free wifi access. we don't want those hacktivists getting free wifi, nosiree. wait! hacktivists are good people? uhhhhhhhh. but we could give wardriving to our cronies! let's make special cronie-only wardriving setups. then we can rip the arms off the hacktivists? arms? this timestamp got lost somewhere: 745 let's run tcpdump like any normal millenial network bum would. 749 sudo tcpdump -vvni wlp0s20f0u4 <- these letters are assigned by the kernel driver deterministically based on bus architecture and module timing. they are not secret messages. 750 struggling with typing tcpump or tcpdumpdump instead of what I mean 751 no packet traffic. let's run a dhcp client! oops! nm! there's an arp packet! the arp packet came from 10.0.0.1, so the router's gateway stuff is running and the problem is probably either local or in packet transmission to the router. i'll try setting a manual ip and see if I can reach the router. 752 I set a manual ip but no response from router on port 80, foolishly closed tcpdump 753 inhibition around tcpdump again 754 tcpdump isn't showing any TCP packets being sent. rerun curl .. doesnt make tcp packets. maybe my routing table is sending them elsewhere or something. 755 yupyup need to add a routing table entry my routing table looks weird to me, i'll try handtyping it Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG ohhh I think I get it. also inhibition around sharing local information, hrm. "gateway" must pick the interface's configured gateway or something. man it has been a long time since I added or changed a routing entry. i'll try taking my other interface down. 757 dang my hands enabled airplane mode 758 the system won't reassociate with the AP after toggling airplane mode ... 759 now the ap isn't showing up anymore. maybe my antenna fell off the branch it's draped on. hey there it is! still not associating. Okay the plan is to check the antenna before continuing that. 800 ooooh toggling airplane mode and taking my interface down broke the gdb clone :/ my hands keep clicking on interface selection over and over again 801 there we go, other interface. I have an idea! I can clone gdb on my phone, and transfer over. 802 oops my phone is in airplane mode. sometimes it does this on its o804 804 I took it out of airplane mode and a pkg update in gdb, and airplane mode toggled back on during the pkg update. i'll repeatedly untoggle it until I have git installed. 808 I've gotten about 56 MB downloaded before airplane mode kicks on, which is about 76% of git clone --mirror --depth=1 i'll try some more 810 i've set it up in a script to keep retrying, so I can just keep reenabling airplane mode 811 I remembered how to fix my airplane mode issue! I take another phone, videorecord the display of this phone, and then the airplane issue stops happening while i'm recording. this'll be an easy clone now! 812 i've misplaced my other phone, to videorecord the misbehaviors of this with, to clone gdb on to workaround the misbehaviors of my laptop, to debug the misbehaviors of gdb, to debug the misbehaviors of bitcoin, to sync a node to store records of things i'll look for it. it's 813
its 815 and I found my other phone without a phone plane. I was sitting on it. i'll plug it in while it boots yayyyy I have a win/win behavior. I either get to record the airplane mode issue or I get to clone gdb .... maybe ! maybe something else will go wrong. 816 the phone booted up. its battery icon says 0%. 817 the phone turned itself off. there's a button on the charger cable that disables charging that somehow gets pressed. repressing it. 817 phone charging! display says "Need to charge more to power on." now it says 2%. booting it. 818 and i'm waiting for my 3rd device to boot. i'm going to look at a forensic recovery process I have going on. it's still extracting lost files. there are gigabytes. I wonder if the progress is output anywhere. I may have made an error learning a gui tool, unsure. 819 second phone is booted i'll start video recording and talk to the recording instead of typing it's 819 and my second phone is in airplane mode and has a black screen instead of a list of applications. yay pressing home worked 820 this phone has a strange attribute where the "camera" app doesn't show in the application selector. I have to find camera via some other interface and launch it indirectly. 821 found it in the settings dialog. says it's running. 822 found it in the application switcher since luckily it was running 824 it's performing the airplane mode misbehavior on-camera but the camera keeps focusing so that it's all blurry. it's still somewhat visible. i'll try to make it sharp by playing with it. 825 the phone says not enough storage
827a I happen to rarely have a blank microsd card right here. I can use it. i'll want to head indoors briefly, maybe in half an hour. let's put this microsd card in. it's 829 oh! I moved it to this phone. but there's nothing on it. umm it's on the same caddy as my sim card. 829 i'll plan to reboot this phone, migrate the microsd card, and try again after it boots up. maybe the airplane mode issue will go away.
832 after sending that last email the following things happened: - airplane mode issue stopped happening - internet came back on my linux wifi - I noticed I binutils-gdb was already cloned on my harddrive in the same folder i'll reboot and migrate the microsd anyway
842 so, the binutild-gdb folder I found is empty. but now the internet works better, i'm trying out doing a full clone. it is presently stalled. 843 it looks like the git:// protocol doesn't support partial clone, but I could probably do a partial clone from a github mirror of sourceware.org which are likely common 845 i'm trying a shallow clone again. I guess i'll also look for github it could make sense to work with the bitcoin code too, but gdb source is an important thing to have. both clones are stalled, maybe due to long tcp delay kernel config somewhere. oooh shallow clone unstalled. 847a. found a binutils-gdb mirror on github https://github.com/bminor/binutils-gdb 848 i've started a partial clone and it's trying to find io time. there it goes. I think this one might work, partial clone is kinda smart. we'll see. file recovery still says it's in progress. partial clone is asking for 132k objects. shallow clone is asking for 36k. partial clone is stalled at 44%. shallow clone stalled at 10%. maybe i'll look for that kernel config. 850a hrm first resource I found says the upper retry time is harcoded. but that doesn't mean the falloff curve is ... but it might be. 852 the partial clone finished its important first retrieval and is buzzing away downloading sparse object sets in retryable manners. the shallow clone is at 87% I also have a full clone going which thankfully has not given up. maybe i'll pause partial clone. maybe not. they stall so much it seems unlikely they'd compete. i'll look for tcp retry settings more. some inhibition :/ 856. oh hey shallow clone finished! hmm some kind of io contention trying to update the files. hey everything unstalled all at once, file io and network both. now they all stalled again. it's 857.
859 i'll have bkfst and such or something while I wait for these processes to decide their priorities
1048 welcome to another episode of that crazy guy on the internet who keeps using his malfunctioning system without rebooting it or anything. my ip assignment disappeared again, but the route was still there, so I manually reassigned a made up ip in the right group and some of the transfers that were stalled somehow resumed their open connections. which is weird and implies it used the same ip as my guess. I can now curl google. but github gives network is unreachable. a story that is getting slightly old. it's 1050. I have a gdb shallow clone on their master branch. i'm changing the refs because it's the only branch I can see. I might just build it. my pipes and io are getting slower and slower. switching to text-only terminal. the tmux pane with vim open isn't updating. other tmux panes are. 1052 I recall I found how to fix this issue in the past few months, that it's some tmux thing, but I don't remember :/ ok after some time the pane is displaying different output but still doesn't update. looks like I hit the wrong key somewhere. it has :'<,'> at the bottom. maybe I can just get rid of the pane. i'll look up how to tell tmux to close a pane. I usually just type exit. 1053 1054 ctrl-b, x. closes a pane ! guess i'll try the ref updating again. 1055 I think the issue is that io to my external raid is very delayed. it hought this was because of the file recovery process, but when I run iotop I don't actually see it uses io. just the git processes I spawned. maybe there are more of them? 1056 and I updated the refs! file save waiting for io. I had a git fetch --tags going in the shallow gdb repo. it finally finished downloading and is 70% done resolving deltas. it doesn't make sense to me that these tasks are taking this incredibly long. 1057 but I guess the file recovery process could have really backlogged some write queue. 1058 and i'm spamming a mailing list with minute by minute updates. file saved ! yay so the problem with building gdb is the checkout folder is responding so slowly. I guess I'll check io usage. 1059 disk usage is not that high. the default iotop display is shuffling between 0 MB/s total write and 100 MB/s total write. I guess the disks (raid 1 pair) or their driver or such are responding slowly. the writing is mostly from the recovery process. 1100 maybe it uses direct writes or something. I think those might be slower. 1101 oh maybe this it. the array is 3.6T large and has only 78G left. there must be a lot of seeking happening. maybe I can delete something big. I also checked /proc/mdstat and both disks are up and in sync, no rebuild happening. 1102 I sit here, waiting for ls -l to complete. oh there it is. -> deleted 32G emergency swap file. I regret this, as it has memory contents in it. actually it's still deleting but it's like inside the system call, I'll probably let it finish ok it's only 32G anyway, not that big, i'll kill -9 it oops there it responds 1104 so I have this cool script I made called livesort its in one of my github repos for cli tools, I like to be all du --max-depth=1 | livesort -n and it shows big directories while it is searching for them 1105 this will of course take forever. i'd better pause other processes writing to the disks. 1106 I even found the pane that launched the file recovery app and paused that thing. all with ctrl-z of course. you can resume with "fg" . du still not responding. 1107 but ls is ! 1108 du is starting to respond I kind of recall my biggest folder is likely a pypi mirror I was starting to make. hmm. maybe I can zstd it or something. i'll visit the du output as it updates. hmm I have a mirror of stackexchange stuff here that's really big. also models from the huggingface hub oh and parts of the old exconfidential stuff. there's probably something there to delete. uncompressed blueleaks tar. 289G . should zstd that thing. I would ... have to delete the start of the file as I read it ... while piping to zstd ... uh ... so there's value to deleting smaller stuff. currently 109G free. swapfile deletion must have gone through. oh no i'll need space for the blockchain too oh no ummmmmmmm if I am preserving things, i'd better at least keep a copy of them. some things seem useful for different stuff. a lot of this is just archival. do I need a bigger drive? oh! the pypi folder! oh. hmm. it would be nice to have a mirror of pypi but i'm not sure I have the space. it seems important to have. how are things so big nowadays? right now my biggest folder is exconfidential and the biggest file is blueleaks. unfortunately I don't trust this file to survive and so it's hard for me to delete it. but I could compress it with a trick maybe. maybe instead of doing all this, i'll just buy a big harddrive, dunno. I have a disk enclosure I set up for 12v power indoors. I've been using the disks in it with a raspberry pi. i'm a little confused. to upgrade a raid 1 i'd need two disks that are bigger, or I could get 1 disk that's twice as big, and put the other two into a raid 0. I think I have 1 disk that's twice as big. there's probably stuff on it too, though, hmm. uhhhhhhhh I already have a blockchain on this disk. it doesn't need that much free space. whew. 1118 . I could tar up and zstd smaller folders until I have enough space to zstd larger stuff. 1119 yay i'm tar|zstd'ing some backup that was in directory format. rare ipfs data that got partly corrupt. 1120. waiting for my tarball to compress. I used zstd --ultra -22 so it's pretty slow. and I forgot to enable multithreading. it doesn't appear to be processing the subfolders in sorted order, so it's hard to tell how long it will take. I have an appointment in a few hours. I think i'll restart it and use threading. 1121 1122 I gave it 8 threads and I think I have 4 cores. cpu is 25% idle 25% waiting on i/o. could have used more threads. my phone keyboard has developed a bug such that funy things are on my screen. I have a hardware keyboard and the button to close the software keyboard has disappeared. android back button worked. 1125 I tried resuming one of my clone processes and it bailed because it was mid-network-connection when paused. this freed tens of Gs of space when it automatically deleted its clone folder. 1126 oh hey du found my blockchain folder. only 180G. probably something compressible in there. and I have some backups of corrupt states of other backups. but I want to make sure not to make important things harder to find, not sure how to do that. 1127 oh I am so crazy, la de da, la de da 1127 I think I can kind of resume processes some now, with space slowly freeing as I work on that 1128 I guess it would have been silly to allocate more threads when it was already bound by io 1129 hey! I have a tmp folder thats 80G ohhh that's where the recovery is happening :/ let's compress that stackexchange folder. oh maybe wait for the first compression to finish. 1130 gdb shallow could be buildable now eh 1131 1136 gdb is building, master branch since it's what I had. lots of parallelism since io is so slow. whooptydoo. things will go better when more space is free or when the file archival finishes. but it's nice to be working on the same thing kinda continuously. nicer than other ways things can be for me. gdb is kinda just a token, it shouldn't be crashing, it shows something is wrong. the solution is probably debugging bitcoin, even if the symptom is elsewhere. maybe an old tag. I could also use a binary release, or at least try to. note: chroots easier than vms for missing glibcs. 1139 all the same stuff is happening. maybe i'll do some other things for a. bit.
On Wed, Oct 27, 2021, 4:53 AM grarpamp <grarpamp@gmail.com> wrote:
the arp packet came from 10.0.0.1
This may not hardly be true, it came from ye who decided to write the raw packet as such and drop it on the wire, your receipt of is subject to any antispoofing provisions, which are not necessarily done.
what are you talking about? usually when i'm diagnosing things I make serious errors, often including paranoid assumptions. spamlogs here are just my personal experience, not hard fact.
okay, i have no idea what's going on :) i haven't reread this thread. i dunno where i left off. but _presently_ i have a problem where i have too much corrupted data, and i keep corrupting it, and it has reached too large a point. handling it is a priority for me. i'd like to store hashes of it somewhere that doesn't let me corrupt it. i want those hashes to be like a stone mountain, where i keep punching it and punching it and take out my hacksaw and desperately try to mess it up, and it just stays there. it turns out that opentimestamps and origintimestamps are _separate_ efforts that to me appear obfuscating and disconnecting of users from blockchains. dunno. but i already made an opentimestamps client! woohoo! i also made similar work in libtoilet. i'm not running a bitcoin peer to hash anything on its chain. and i can see that people's confidence in bitcoin's price is being whittled away with a little more precision than before. i'll try the old opentimestamps client hack out. it was at https://github.com/xloem/opentimestamps-client .
buuut maybe i'll just add a script to libtoilet that outputs a raw op_return. that seems way more flexible.
libridiculousattempttofossilizeincineratedashes is hard for me to engage, because i haven't videotaped myself murdering enough people.
participants (3)
-
grarpamp
-
Karl
-
Undiscussed Horrific Abuse, One Victim of Many