yenom / BitcoinKit

Bitcoin protocol toolkit for Swift
MIT License
841 stars 261 forks source link

We're back. Sorry for long absence. #210

Open usatie opened 5 years ago

usatie commented 5 years ago

Hi all. Thanks for your long patience, and I apologize for long absence. I've been overwhelmed by personal problems. But most of them will be resolved soon. And I was not just hanging around, but I've been learning a lot, in order to make it better. I'm preparing updates. Will respond to issues as well.

P.S. I've created discord for BitcoinKit development. If you're interested in developing BitcoinKit, feel free to visit here. https://discord.gg/TZZs7uQ

Sajjon commented 5 years ago

Great to hear @usatie we all know how it is, balancing OSS and life, it's hard! Hope you are feeling alright! And don't work yourself to death! :)

Sajjon commented 5 years ago

Did you see that Apple announced support for Swift Package Manager for iOS during WWDC? It would be really cool to be able to use BitcoinKit and SPM in Xcode 11 :D

usatie commented 4 years ago

Thank you. That would be on our roadmap. I'm starting to work on.

  1. Review all the PRs
  2. Start preparation for next version 2.0.0
usatie commented 4 years ago

Finished for reviewing and merging all the PRs. Next, I'm working on preparation for the next version.

jbdtky commented 4 years ago

What is your plan for the next version?

usatie commented 4 years ago

@jbdtky First of all, I want to hear from people. And I want to make this place more active. But okay, these are in my mind for now, and I need help to accomplish them all.

1. SwiftPM support

SwiftPM for iOS Including refactoring the dependencies to openssl/secp256k1

2. Break down BitcoinKit into smaller frameworks

Wallet/API implementation is not good to be included in this library. It's more like an application or higher-level library.

3. Add some changes to the code imported from my wallet project.

Currently I'm wrapping BitcoinKit in other framework to be more usable in our wallet project, and most of the code can be imported to BitcoinKit. ex.

├── FeeCalculator.swift
├── HDWallet.swift
├── Info.plist
├── LockScriptConverter.swift
├── PaymentURI
│   ├── BitcoinScheme.swift
│   ├── PaymentURI.swift
│   ├── PaymentURIError.swift
│   └── PaymentURIParameter.swift
├── QRCodeParser
│   ├── QRCodeParseResult.swift
│   └── QRCodeParser.swift
├── RedeemScriptProvider.swift
├── TransactionBuilder.swift
├── TransactionPlan.swift
├── TransactionPlanner.swift
├── TransactionSigner.swift
├── UnspentSelector.swift
├── Wallet.swift
├── WalletError.swift

4. Refactor private/internal/public modifiers

Currently, some of them are messed around.

5. Increase test coverage and stability

Add tests.

6. Implement full SPV feature

This was on the way and stuck.

7. Better documentation

We only have README.md now. Both documentation in codes, and Documentation/something.md are necessary.

8. Implement more powerful features

jbdtky commented 4 years ago

Sounds like a good start.

  1. May be a great idea. It could be separated frameworks that I have done in my side for more focus token. However we could add some basic functionality for tokens in the sdk like address format (for slp), I have it in a fork.
  2. In my fork, I added support for the new OP_CODE, I think it’s really important to add the OP_CHECKDATASIG and VERIFY. It is a great opportunity for script.
    • Schnorr signature support would be awesome.
    • Cash shuffle is a bit complex in the workflow and I don’t think people would like to use it by default in their wallet, it could be provided by an external lib as plugin based on BitcoinKit maybe, what do you think?

Anyway, It’s already a great list. If you need help for anything, please contact me on telegram @jbdtky and or invite me in the workgroup if there is and I will participate in the dev with pleasure.

usatie commented 4 years ago

@jbdtky Thank you. I appreciate for your cooperation!

PR is welcom for both of what you implemented.

I agree.

Cash shuffle is a bit complex in the workflow and I don’t think people would like to use it by default in their wallet, it could be provided by an external lib as plugin based on BitcoinKit maybe, what do you think?

I created a discord group for the workgroup. This is the invitation link. https://discord.gg/TZZs7uQ

mzygar commented 4 years ago

Can you elaborate what's the problem with SPV? Where are you stuck at? I see there is a branch for that already