blinklabs-io / bluefin Goto Github PK
View Code? Open in Web Editor NEWA Fortuna (TUNA) miner, written in Go
License: Apache License 2.0
A Fortuna (TUNA) miner, written in Go
License: Apache License 2.0
It seems to have gotten into a weird state in preview where it's trying to use a UTxO from another wallet as an input on a new TX. The other wallet was also mining TUNA, but the UTxO seems to be from a subsequent TX on that wallet unrelated to TUNA mining.
{"level":"error","timestamp":"2024-04-30T17:03:44-05:00","caller":"miner/worker.go:81","msg":"failed to submit TX: failed to submit TX to API: http://tc2:6090/api/submit/tx: 400: \"transaction submit error ShelleyTxValidationError ShelleyBasedEraBabbage (ApplyTxError [UtxowFailure (AlonzoInBabbageUtxowPredFailure (ExtraRedeemers [RdmrPtr Spend 0])),UtxowFailure (UtxoFailure (AlonzoInBabbageUtxoPredFailure (UtxosFailure (CollectErrors [BadTranslation (TranslationLogicMissingInput (TxIn (TxId {unTxId = SafeHash \\\"086459182edc0a2fe54e40f9560a4f99821265e386bab263902f3e874c95204f\\\"}) (TxIx 0)))])))),UtxowFailure (UtxoFailure (AlonzoInBabbageUtxoPredFailure (ValueNotConservedUTxO (MaryValue 87325173 (MultiAsset (fromList [(PolicyID {policyID = ScriptHash \\\"502fbfbdafc7ddada9c335bd1440781e5445d08bada77dc2032866a6\\\"},fromList [(\\\"54554e41\\\",585000000000)])]))) (MaryValue 94040153 (MultiAsset (fromList [(PolicyID {policyID = ScriptHash \\\"502fbfbdafc7ddada9c335bd1440781e5445d08bada77dc2032866a6\\\"},fromList [(\\\"54554e41\\\",585000000000),(\\\"6c6f72642074756e61\\\",1)])])))))),UtxowFailure (UtxoFailure (AlonzoInBabbageUtxoPredFailure (BadInputsUTxO (fromList [TxIn (TxId {unTxId = SafeHash \\\"086459182edc0a2fe54e40f9560a4f99821265e386bab263902f3e874c95204f\\\"}) (TxIx 0)]))))])\"","stacktrace":"github.com/blinklabs-io/bluefin/internal/miner.(*Manager).Start.func1\n\t/home/agaffney/dev/blinklabs-io/bluefin/internal/miner/worker.go:81"}
The UTxO that it's complaining about comes from this transaction:
https://preview.cexplorer.io/tx/086459182edc0a2fe54e40f9560a4f99821265e386bab263902f3e874c95204f
And the TXs for that address:
Calculate a global hashrate and report it periodically in the logs
To make it easier to use, we should include the full path in our log outputs, etc. so the user can find the correct location easily.
on Ubuntu 22.04.3 LTS:
~/bluefin$ make
# Needed to fetch new dependencies and add them to go.mod
...
go mod tidy
github.com/blinklabs-io/bluefin/internal/logging imports
go.uber.org/zap tested by
go.uber.org/zap.test imports
io/fs: malformed module path "io/fs": missing dot in first path element
make: *** [Makefile:23: mod-tidy] Error 1
There's a TUNAv2 contract with some changes. We want to be able to support both.
I've looked through the TUNA hard-fork contract, and I've noticed a few differences:
TargetState
object (used by the miner internally) has its fields reordered and a new miner
bytestring field addedminer
bytestring is a blake2b hash of either a public key hash or a NFT (for mining pools, I think)miner
field, the contract will verify that it matches one of the signers on the transactionextra
(message) last instead of before the interlinkIt's harder to determine what changes we'll need in the TX building (extra redeemers or whatever) from looking at the smart contract, so we may need to wait until Fortuna is updated to see what's needed
Let's move the data model for Fortuna's contract to cardano-models (fortuna.go?), so it can be reused.
https://discord.com/channels/946071061567529010/1146201677209292891/1217698501560107019
"I'm a newbie in golang but my guess is that there's a type mismatch between line 94 in tx.go and 148-151"
Create a HOWTO which walks the user through setup and maintenance. This includes anything necessary in the wallet.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.