Avatar
boerst
fc26e0fdd7452ce27c72a6d6b58fe05e6e059baa56a6703c42a9ee3fbe185cb5
timestamping blocks

Every 401 Supra and 601 Gamma that I've ever seen have never had the OLED screen soldered; always just fit the 4 header pins into the board without solder. I've never had any issues. 🤷‍♂️

Super Mario 3

Replying to Avatar boerst

Today I added a new column to https://stratum.work to show coinbase tx payout addresses and I also added a "pause/resume" button.

Now you can compare payout addresses across pools.

Thanks for the suggestions, @jon.

The goal is to get this data in front of more people so that they can make informed decisions about where they point their hash.

If anyone has suggestions for how to make this better, please hit me up.

Today I added a new column to https://stratum.work to show coinbase tx payout addresses and I also added a "pause/resume" button.

Now you can compare payout addresses across pools.

Thanks for the suggestions, @jon.

The goal is to get this data in front of more people so that they can make informed decisions about where they point their hash.

If anyone has suggestions for how to make this better, please hit me up.

I played around with their firmware graphql endpoint a while back and I believe that they mainly use it for populating the web UI. Here’s some stuff to play around with if you’re curious…

This auths you and stores the session cookie in a cookie jar (cookies.txt)

```

curl 'http://10.1.45.21/graphql' \

-H 'Accept: application/graphql-response+json, application/graphql+json, application/json, text/event-stream, multipart/mixed' \

-H 'Accept-Language: en' \

-H 'Content-Type: application/json' \

-H 'Priority: u=0' \

--data-raw '{"operationName":"RootLogin","query":"mutation RootLogin($username: String!, $password: String!) {\n auth {\n login(username: $username, password: $password) {\n ... on Error {\n message\n __typename\n }\n __typename\n }\n __typename\n }\n}","variables":{"password":"root","username":"root"}}' \

--compressed \

--insecure \

-c cookies.txt

```

Here's an instrospection query to return their schema:

```

curl 'http://10.1.45.21/graphql' \

-H 'Accept: application/graphql-response+json, application/graphql+json, application/json, text/event-stream, multipart/mixed' \

-H 'Accept-Language: en' \

-H 'Content-Type: application/json' \

-H 'Priority: u=4' \

--data-raw '{"operationName":"IntrospectionQuery","query":"query IntrospectionQuery { __schema { queryType { name } mutationType { name } subscriptionType { name } types { ...FullType } directives { name description locations args { ...InputValue } } } } fragment FullType on __Type { kind name description fields(includeDeprecated: true) { name description args { ...InputValue } type { ...TypeRef } isDeprecated deprecationReason } inputFields { ...InputValue } interfaces { ...TypeRef } enumValues(includeDeprecated: true) { name description isDeprecated deprecationReason } possibleTypes { ...TypeRef } } fragment InputValue on __InputValue { name description type { ...TypeRef } defaultValue } fragment TypeRef on __Type { kind name ofType { kind name ofType { kind name ofType { kind name ofType { kind name ofType { kind name ofType { kind name ofType { kind name } } } } } } } }","variables":{}}' \

--compressed \

--insecure \

-b cookies.txt

```

…then based on the schema, you can figure out how to get the hashrate, for example:

```

curl 'http://10.1.45.21/graphql' \

-H 'Accept: application/graphql-response+json, application/graphql+json, application/json, text/event-stream, multipart/mixed' \

-H 'Accept-Language: en' \

-H 'Content-Type: application/json' \

-H 'Priority: u=4' \

--data-raw '{"operationName":"RealHashrateQuery","query":"query RealHashrateQuery { bosminer { info { summary { realHashrate { mhsAv mhs5S mhs15S mhs30S mhs1M mhs5M mhs15M mhs30M mhs1H mhs24H mhsSinceRestart } } } } }","variables":{}}' \

--compressed \

--insecure \

-b cookies.txt

```

This is pretty significant. Directly P2P using this protocol. nostr:note14qwcnqhnj6nz7v6nn6qppck4gdre94r2l0t295zz09s4hq5vyv5qn5xfv2

nostr:npub1theparkprcs70dcs437ke9zzwsr6u60f8flu7rg28m30438aep9sd94dha is hosting the first “Mining Monday” on Sept 16. It’s worth the trip if you can make it to Nashville for a few days that week:

- Monday 9/16 - Mining Monday

- Tuesday 9/17 - NashBitDev

- Wednesday 9/18 - Open house

https://bitcoinpark.com/meetup

Streaming sats over lightning to charge my car feels like the future! Instant settlement for energy straight from my self-hosted node to the charger operator’s node.

I’m excited to see this rolled out more broadly so that more people can experience this. nostr:note14r34l6vwuxjer0p6aycje54el7jmq7n3tvtdphwdrxsy78hhejcsh9k0eq

Track all of your Bitaxes from one place. nostr:note1x6nha9ngw5pg68frf9p7yk79ne4vxngm0ek2lhlqdmqv5r8dmzuqwvxsmt

Teleporting little slices of digitized “time” from me to you.

Lookin good! Nice work! Love the logo.

Replying to Avatar boerst

I built https://stratum.work to get this block template stuff in front of more eyes. It shows real time template data sent to miners to work on and you can watch for similarities between pools yourself.

This thread does a great job explaining the data:

nostr:note1qckcs4y67eyaawad96j7mxevucgygsfwxg42cvlrs22mxptrg05qtv0jz3

When all merkle branches for a pool match another pool (colored cells), it means that they are using the same block template.

You can also see custom transaction prioritization, like a tx accelerator, when there’s a lower than normal fee rate for the “first transaction”.

I built https://stratum.work to get this block template stuff in front of more eyes. It shows real time template data sent to miners to work on and you can watch for similarities between pools yourself.

This thread does a great job explaining the data:

nostr:note1qckcs4y67eyaawad96j7mxevucgygsfwxg42cvlrs22mxptrg05qtv0jz3