-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Project activity #15
Comments
Hi! Awesome to see some interest in it after so many years :) I would really like to. What prevents me is mostly time (I work full time and in my current spare time, I also work on different things), but also the fact that I got desperately behind. I'm lacking BIP44, Segwit and a lot of changes that are required to make this valuable. I picked it up again a little bit recently, though, since I've been working on a project I wanted to start a long time ago. Simultaneously, I had the idea to create a general AngularDart-based tool page with this ranging from BIP39 Mnemonic Code functions, so BIP44 key generation, to newer things like Lightning Network invoice parsing etc. This would at least prove dart-bitcoin useful :) What would your interest in the project be? |
I like to learn Dart, and I like to learn Bitcoin (code-base). I would probably like to work towards a wallet. Maybe projects like bcoin can be helpfull to outline the (further) architecture of functions. |
I've been working on a little wallet project a few weeks back. Using
Flutter; but first mainly focussing on the UI and using a proxy wallet to
(btcsuite's) btcwallet or lnd. Once a very basic but usable UI is done, I
was thinking about implementing an actual wallet in Dart.
…On Tue, Feb 20, 2018 at 5:16 PM, R. de Wilde ***@***.***> wrote:
I like to learn Dart, and I like to learn Bitcoin (code-base).
I would probably like to work towards a wallet.
Maybe projects like bcoin can be helpfull to outline the architecture.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#15 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA0F3MBPfRrxzlj270dfHVUQ2o6aXsVXks5tWu_6gaJpZM4SL6jL>
.
|
That would be so awesome. If there's any way I can help, please tell me. I don't want to do the same work twice. What about running a full node in Dart bitcoin? |
That was my initial idea when I started the project. Basically mirroring bitcoinjs functionality. But I stepped away from that. A full node in Dart makes no sense, I'm also a big fan and user of btcd, the Go implementation of a Bitcoin full node. I do however think that a good SPV implementation might make sense (a la neutrino), but it's far from my priority. |
Why wouldn't it make sense to do the full node? I mean for altcoins stacking up your complete client and server codebase into Dart would be pretty awesome. Why did you step away from bitcoinjs architecture? Want to figure out your own best fit? I'll see if I can work on this SPV or port more Bitcoin code to this project. 👍 |
@stevenroose So how does one bootstrap this package to dev/test it? Do you just use the test scripts provided? Or some dummy implementation? Or do you use a custom script/scratch file? |
Full nodes need high-performance and highly stable systems. I don't see how Dart can compete with implementations in other languages like C++ and Go.
I didn't; it's still quite similar, even though I haven't looked at bitcoinjs for many years. I just don't see any value in a full node implementation, more in utility libraries and potentially eventually a wallet or SPV node.
That's the thing with it currently being a utility library. There is no "endpoint" or binary or anything. There are plenty of tests, mostly copied from Core or other implementations (of which I didn't manage to get them all to work, so some code is still not finished). I'm thinking about maybe a web utility dashboard that can demonstrate some of the features. Also, this is a very low priority thing for me, I haven't seriously touched this since 2013-2014 maybe. Don't get your hopes up, but keep an eye out. Next thing that interests me is BIP32 support. |
Well Dart could be fast due to the easy async nature? If the codebase would be event-based, non-blockchain, async code, I'm not so sure it cannot compete. It is not as mature as c++, but someone needs to "start" somewhere 😂 |
Hello there! I'm also interested in this project, I would like to implement a wallet as well, using Flutter. Could we have a chat and see how we could collaborate? |
Hi @DaniGuardiola! This project is owned by @stevenroose but I would also like to get into contact with you. Can you add me on Linkedin for example? https://www.linkedin.com/in/robertdewilde/ I guess my question in this issue was answered already, so I'll just close it before it turns into a chatbox 🤣 |
I'm sorry guys! Don't really have time to work on this anymore! However, I'm still kinda familiar with the codebase, so any questions, feel free to ask! I think there is really quite some work done here, so it would be very sad if people would start over or fork. |
Would be great if we could make it work with community support 👍 and great you're still available for guidance! (and thanks for adding to linekd in) I have been struggling with the code for some time now locally. I have done some refactoring for BigInt implementation. I'll probably do a PR when I got the tests working again, to get some feedback :) |
The biggest problem is that some tests never worked. (I ported tests -- as well as quite some code -- from BitcoinJ in the time.) So check what tests work before your change and just make sure you don't break any after. |
Hey @RdeWilde I don't really use my linkedin much. You got telegram? @DaniGuardiola on tg |
@stevenroose Looking for a way to submit simple transactions to an altcoin chain having known the account balance via explorer api using Dart/Flutter. Want to make sure the client doesn't have to sync the chain just to get the balance. Is dart-bitcoin ready for this kind of task? Does bitcoin protocol even allow this? |
Perhaps this is in the realm of Electrum type implementation |
@lukepighetti I don't really understand what you want to accomplish.. This is a Bitcoin project, it's not made for altcoins.. If your altcoin is very "bitcoin-like", like Litecoin f.e., it could work. You would have to create your own If you grab all the UTXOs of a wallet, you could normally create and sign a transaction with dart-bitcoin. I've never done it, though :) |
When I say altcoin I'm talking about a coin that is running on Bitcoin source. |
The larger question is that of creating a transaction and submitting it to the network without being synced with the blockchain. Is that even possible? I know Electrum wallet does this but I'm not sure what is being transferred between the client and the server. |
What you need are the UTXOs, they are provided by the electrum server if you ask it. Also, depending on the type of wallet you have, in BIP34 you might need to check for addresses with transactions by asking the electrum server until you get a gap of N addresses without txs, commonly named gap limit. This is what you need to download from the network to be able to create transactions from a wallet, without the need for downloading the whole blockchain. |
If I'm not mistaken, you should be able to retrieve this information also from a standard full node, and you can broadcast a valid transaction through it or through an electrum server as well. Hope that helps. |
I will go educate myself more on this, thank you for the help. I guess my next question is how fit is dart-bitcoin to handle something like this in its current state? |
As Steven mentioned, if you have the UTXOs, you should be able to create and sign a transaction. Then you can just broadcast the transaction. |
@DaniGuardiola (hi again btw!) "just broadcast" is something dartcoin cannot do for now. It doesn't have logic for peering etc. But any public full node can do it for you. Or you can use block explorers, they often have an API to submit transactions. |
Hey! :D Yeah sorry if I wasn't clear, what I meant with "just broadcast" is that there's no specific or complex code for broadcasting a transaction, you can just connect to any full-node, electrum server or third party API and send it through pretty standard methods, maybe REST or TCP sockets with RPC. Just make your pick and go for it. Using a third party API seems like the easiest way to go. |
Hey guys, I admittedly haven't had a good opportunity to educate myself on this since I last posted, but it's a quick questions so I hope you won't mind. Do you need the UTXOs for anything but knowing what your current balance is? In other words, can. you push a transaction to the blockchain without them? (Surely you cannot spend more than you have, but that type of transaction would just error out.) |
A bitcoin transaction contains inputs and outputs. The inputs are Unspent T(X)ransaction Outputs (UTXOs) that you own ("sent to your addresses"). So you need your UTXOs in order to compose a transaction. |
Any plans to continue working on this project?
The text was updated successfully, but these errors were encountered: