GithubHelp home page GithubHelp logo

breadwallet / breadwallet-core Goto Github PK

View Code? Open in Web Editor NEW
273.0 273.0 326.0 18.29 MB

SPV bitcoin C library

License: MIT License

C 69.95% C++ 0.84% Makefile 0.05% Java 18.74% Objective-C 0.04% Swift 9.98% CMake 0.33% Shell 0.04% JavaScript 0.03%

breadwallet-core's Introduction

ƀ breadwallet

download

bitcoin done right

The simplest and most secure bitcoin wallet on any platform

screenshot1

The first standalone iOS bitcoin wallet:

Unlike other iOS bitcoin wallets, breadwallet is a real standalone bitcoin client. There is no server to get hacked or go down, so you can always access your money. Using SPV mode, breadwallet connects directly to the bitcoin network with the fast performance you need on a mobile device.

The next step in wallet security:

breadwallet is designed to protect you from malware, browser security holes, even physical theft. With AES hardware encryption, app sandboxing, keychain and code signatures, breadwallet represents a significant security advance over web and desktop wallets, and other mobile platforms.

Beautiful simplicity:

Simplicity is breadwallet's core design principle. A simple backup phrase is all you need to restore your wallet on another device if yours is ever lost or broken. Because breadwallet is deterministic, your balance and transaction history can be recovered from just your backup phrase.

screenshot2

Features:

Translations managed by:

PhraseApp - Start localizing software the simple way

URL scheme:

breadwallet supports the x-callback-url specification with the following URLs:

bread://x-callback-url/address?x-success=myscheme://myaction

This will callback with the current wallet receive address: myscheme://myaction?address=1XXXX

The following will ask the user to authorize copying a list of their wallet addresses to the clipboard before calling back:

bread://x-callback-url/addresslist?x-success=myscheme://myaction

WARNING:

Installation on jailbroken devices is strongly discouraged.

Any jailbreak app can grant itself access to every other app's keychain data and rob you by self-signing as described here and including <key>application-identifier</key><string>*</string> in its .entitlements file.


breadwallet is open source and available under the terms of the MIT license.

Source code is available at https://github.com/voisine/breadwallet

breadwallet-core's People

Contributors

acorscadden avatar bushstar avatar carlcherry avatar drewcarlson avatar ewerx avatar igorgue avatar litebit avatar luke-jr avatar lvaccaro avatar michael-brd avatar pbudelli avatar sumcoinlabs avatar voisine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

breadwallet-core's Issues

A serious logic error that frees BRPeer twice in BRPeerManagerConnect

This error will cause app crash

I will give some illustations to show it.

Step 1

In BRPeerManagerConnect, we do BRPeerConnect
image

Step 2

We assume that everything is ok in BRPeerConnect. Then, we will go into _peerThreadRoutine
image

Step 3

In _peerThreadRoutine we run to 1090 line. Here we assume we got the lock, then we run to 1091 line. OK, let's look back at BRPeerManagerConnect. Which line does it run ? Go to Step 4
image

Step 4

In BRPeerManagerConnect, we now at BRPeerConnectStatus. Let's look at BRPeerConnectStatus.
image

Step 5

When we want to get BRPeer status, we firstly need to get the peer's lock. You know, currently, the lock has been got in _peerThreadRoutine which at 1090 line. On the other hand, in _peerThreadRoutine we run at 1091 line. So BRPeerConnectStatus will be blocked until get the lock.
image

Step 6

OK, it's time for _peerThreadRoutine releasing the lock. BRPeerConnectStatus returns the BRPeerStatusDisconnected. Then we get into a situation that _peerDisconnected will be called. Switch to Step 7 to see what does it do.
image

Step 7

Ignore others, just look at BRPeerFree(peer); that frees BRPeer.
image

Step 8

Finally, let's switch back to _peerThreadRoutine. At line 1109, disconnected which is _peerDisconnected will be called again. So everyone will know its result(crash).
image

Solution

Actually, we can use another Status to make a difference from BRPeerStatusDisconnected

BSV Fork

Hi I have written a fork of your code that supports BSV
Please shout if you want to get in contact
to see the changes; clone
https://github.com/edwardbr/breadwallet-core
and checkout the bsv branch
I have only spent about 5 hours on it so I am sure that there are some issues!
I am not interested in the Java and Swift tests, however I do not think I have broken anything, only the isBtc flag in your tests is now a tri state, btc 1, bch 0, bsv 2
I have also compiled for ubuntu fixing/suppressing a few warnings and compile errors

Libraries for Android

Hi Guys -

I am working on forking this wallet for LTC and running into issues compiling the core. Is this the version that is also used for android, and if so, are there any instructions on how to compile in Android studio?

Also would you all be interested in porting this to LTC at all? Given all the recent developments into LTC, this may be great. I can lend a hand as much as possible. Currently the bitcoinj implementation is downright dangerous and your wallet is more of a public service to keep folks and their crypto safe!

p.s. I got the gradle build working, but the c libraries have issues with android studio.

How to compile

Hey I am a beginning c programmer and I can't compile this project.
I cloned this project and tried to compile the project with:" gcc test.c" but it had a lot of errors.
What am I doing wrong?

Thanks in advance
Daan

unable to add nodes

In the advanced settings I'm unable to add nodes by hand.
reason is because of locale the keypad only show a , for entering the ip instead of a .

Testing Suite

Any pointers how to run test.c?

I got to the point that I'm able to compile on android using gradlew but then I'm not sure how to run test.c.

gradlew :app:externalNativeBuildBrdTestnetDebug

From there I copy my library from app/build/intermediates/cmake/brdTestnet/debug/obj

But when I'm using it on test.c it doesn't link property, I'm sure I'm missing something simple.

~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -v test.c -L.

Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/igor/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/7.3.0
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8.0.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.3.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8.0.1
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.3.0
Candidate multilib: .;@m64
Selected multilib: .;@m64
 "/home/igor/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name test.c -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -resource-dir /home/igor/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2 -internal-isystem /usr/local/include -internal-isystem /home/igor/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdebug-compilation-dir /home/igor/Code/breadwallet-android/app/src/main/jni/breadwallet-core -ferror-limit 19 -fmessage-length 190 -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/test-6cd0a9.o -x c test.c
clang -cc1 version 6.0.2 based upon LLVM 6.0.2svn default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /home/igor/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
 "/usr/bin/ld" --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out /usr/lib/gcc/x86_64-linux-gnu/7.3.0/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/7.3.0/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7.3.0/crtbegin.o -L. -L/home/igor/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/lib/linux/x86_64 -L/usr/lib/gcc/x86_64-linux-gnu/7.3.0 -L/usr/lib/gcc/x86_64-linux-gnu/7.3.0/../../../x86_64-linux-gnu -L/home/igor/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7.3.0/../../.. -L/lib -L/usr/lib /tmp/test-6cd0a9.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/7.3.0/crtend.o /usr/lib/gcc/x86_64-linux-gnu/7.3.0/../../../x86_64-linux-gnu/crtn.o
/tmp/test-6cd0a9.o: In function `BRSetTests':
test.c:(.text+0x210b): undefined reference to `BRSetNew'
test.c:(.text+0x2155): undefined reference to `BRSetAdd'
test.c:(.text+0x2176): undefined reference to `BRSetCount'
test.c:(.text+0x21d6): undefined reference to `BRSetGet'
test.c:(.text+0x224e): undefined reference to `BRSetRemove'
test.c:(.text+0x22ab): undefined reference to `BRSetCount'
test.c:(.text+0x230e): undefined reference to `BRSetRemove'
test.c:(.text+0x236b): undefined reference to `BRSetCount'
/tmp/test-6cd0a9.o: In function `BRBase58Tests':
test.c:(.text+0x2439): undefined reference to `BRBase58Decode'
test.c:(.text+0x2466): undefined reference to `BRBase58Decode'

And so on, for each one of the definitions...

Bitpay Bitcoin invoices broken on IOS Breadwallet 3.0

I went to pay a Bitpay invoice with Bitcoin. Scanned the QR code, loaded the request, no issues. Tried to pay and it says "Invalid Bitcoin address".

App also doesn't embed the version into the about screen. This must be 3.0 according to the app store.

Build for Android with Ubuntu 20.04

Hi, i have tried to build core for android with Android Studio and/or Gradle command line.

Android Studio : 3.4.2
SDK : Android 9
NDK : 20.1.5948944
CMake : 3.10 && 3.6
Clang 7
openJdk 14

I tried with gradle 5.1.1 but i had this error :

  `triguntu@triguntu-All-Series:~/breadwallet-core/Java$ ./gradlew clean build

 Starting a Gradle Daemon, 1 incompatible and 1 stopped Daemons could not be reused, use --status for details
 java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7
         at org.codehaus.groovy.vmplugin.VMPluginFactory.<clinit(VMPluginFactory.java:43)
         at org.codehaus.groovy.reflection.GroovyClassValueFactory.<clinit(GroovyClassValueFactory.java:35)
         at org.codehaus.groovy.reflection.ClassInfo.<clinit(ClassInfo.java:109)
         at org.codehaus.groovy.reflection.ReflectionCache.getCachedClass(ReflectionCache.java:95)
         at org.codehaus.groovy.reflection.ReflectionCache.<clinit(ReflectionCache.java:39)
         at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerMethods(MetaClassRegistryImpl.java:209)
         at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init(MetaClassRegistryImpl.java:107)
         at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init(MetaClassRegistryImpl.java:85)
         at groovy.lang.GroovySystem.<clinit(GroovySystem.java:36)
         at org.codehaus.groovy.runtime.InvokerHelper.<clinit(InvokerHelper.java:86)
         at groovy.lang.GroovyObjectSupport.getDefaultMetaClass(GroovyObjectSupport.java:59)
         at groovy.lang.GroovyObjectSupport.<init(GroovyObjectSupport.java:32)
         at org.gradle.api.internal.plugins.DefaultExtraPropertiesExtension.<init(DefaultExtraPropertiesExtension.java:29)
         at org.gradle.api.internal.plugins.DefaultConvention.<init(DefaultConvention.java:47)
         at org.gradle.api.internal.ExtensibleDynamicObject.<init(ExtensibleDynamicObject.java:58)
         at org.gradle.initialization.DefaultSettings.<init(DefaultSettings.java:93)
         at org.gradle.initialization.DefaultSettings_Decorated.<init(Unknown Source)
         at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
         at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
         at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
         at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
         at org.gradle.internal.reflect.DirectInstantiator.newInstance(DirectInstantiator.java:51)
         at org.gradle.api.internal.ClassGeneratorBackedInstantiator.newInstance(ClassGeneratorBackedInstantiator.java:36)
         at org.gradle.initialization.SettingsFactory.createSettings(SettingsFactory.java:52)
         at org.gradle.initialization.ScriptEvaluatingSettingsProcessor.process(ScriptEvaluatingSettingsProcessor.java:56)
         at org.gradle.initialization.PropertiesLoadingSettingsProcessor.process(PropertiesLoadingSettingsProcessor.java:37)
         at org.gradle.initialization.SettingsEvaluatedCallbackFiringSettingsProcessor.process(SettingsEvaluatedCallbackFiringSettingsProcessor.java:34)
         at org.gradle.initialization.RootBuildCacheControllerSettingsProcessor.process(RootBuildCacheControllerSettingsProcessor.java:36)
         at org.gradle.initialization.BuildOperationSettingsProcessor$2.call(BuildOperationSettingsProcessor.java:48)
         at org.gradle.initialization.BuildOperationSettingsProcessor$2.call(BuildOperationSettingsProcessor.java:45)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
         at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
         at org.gradle.initialization.BuildOperationSettingsProcessor.process(BuildOperationSettingsProcessor.java:45)
         at org.gradle.initialization.DefaultSettingsLoader.findSettingsAndLoadIfAppropriate(DefaultSettingsLoader.java:104)
         at org.gradle.initialization.DefaultSettingsLoader.findAndLoadSettings(DefaultSettingsLoader.java:45)
         at org.gradle.initialization.SettingsAttachingSettingsLoader.findAndLoadSettings(SettingsAttachingSettingsLoader.java:35)
         at org.gradle.internal.composite.CommandLineIncludedBuildSettingsLoader.findAndLoadSettings(CommandLineIncludedBuildSettingsLoader.java:34)
         at org.gradle.internal.composite.ChildBuildRegisteringSettingsLoader.findAndLoadSettings(ChildBuildRegisteringSettingsLoader.java:47)
         at org.gradle.internal.composite.CompositeBuildSettingsLoader.findAndLoadSettings(CompositeBuildSettingsLoader.java:35)
         at org.gradle.initialization.DefaultGradleLauncher$LoadBuild.run(DefaultGradleLauncher.java:277)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
         at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
         at org.gradle.initialization.DefaultGradleLauncher.loadSettings(DefaultGradleLauncher.java:202)
         at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:147)
         at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:134)
         at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:58)
         at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:55)
         at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:82)
         at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:75)
         at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:183)
         at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
         at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:75)
         at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:55)
         at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)
         at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
         at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:58)
         at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
         at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
         at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:49)
         at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:44)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
         at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
         at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
         at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:44)
         at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:49)
         at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:46)
         at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:78)
         at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:46)
         at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
         at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
         at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
         at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
         at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
         at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:59)
         at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:36)
         at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
         at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
         at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
         at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
         at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
         at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
         at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
         at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
         at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
         at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
         at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
         at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
         at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
         at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
         at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
         at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
         at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
         at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
         at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
         at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
         at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
         at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
         at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
         at org.gradle.util.Swapper.swap(Swapper.java:38)
         at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
         at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
         at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
         at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
         at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
         at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
         at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
         at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
         at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
         at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
         at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
         at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
         at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
         at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
         at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
         at java.base/java.lang.Thread.run(Thread.java:832)
 
 FAILURE: Build failed with an exception.
 
 * What went wrong:
 Could not create an instance of type org.gradle.initialization.DefaultSettings_Decorated.
  Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
 
 * Try:
 Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
 
 * Get more help at https://help.gradle.org
 
 BUILD FAILED in 2s
 triguntu@triguntu-All-Series:~/breadwallet-core/Java$ 

Also, i change gradle version in gradle-wrapper.properties from 5.1.1 to 6.8

 triguntu@triguntu-All-Series:~/breadwallet-core/Java$ ./gradlew clean build
 
  Task :corenative-android:externalNativeBuildCleanDebug
 Clean corecrypto armeabi-v7a,sqlite3 armeabi-v7a
 Cleaning... 0 files.
 Clean sqlite3 arm64-v8a,corecrypto arm64-v8a
 Cleaning... 0 files.
 Clean sqlite3 x86,corecrypto x86
 Cleaning... 0 files.
 Clean corecrypto x86_64,sqlite3 x86_64
 Cleaning... 0 files.
 
  Task :corenative-android:externalNativeBuildCleanRelease
 Clean corecrypto armeabi-v7a,sqlite3 armeabi-v7a
 Cleaning... 0 files.
 Clean sqlite3 arm64-v8a,corecrypto arm64-v8a
 Cleaning... 0 files.
 Clean sqlite3 x86,corecrypto x86
 Cleaning... 0 files.
 Clean corecrypto x86_64,sqlite3 x86_64
 Cleaning... 0 files.
 
  Task :corenative-android:compileDebugJavaWithJavac FAILED
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryDirect.java:10: error: cannot find symbol
 import com.breadwallet.corenative.crypto.BRCryptoClient;
                                         ^
   symbol:   class BRCryptoClient
   location: package com.breadwallet.corenative.crypto
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryDirect.java:16: error: cannot find symbol
 import com.breadwallet.corenative.crypto.BRCryptoWalletManagerDisconnectReason;
                                         ^
   symbol:   class BRCryptoWalletManagerDisconnectReason
   location: package com.breadwallet.corenative.crypto
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryDirect.java:17: error: cannot find symbol
 import com.breadwallet.corenative.crypto.BRCryptoSyncStoppedReason;
                                         ^
   symbol:   class BRCryptoSyncStoppedReason
   location: package com.breadwallet.corenative.crypto
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryDirect.java:18: error: cannot find symbol
 import com.breadwallet.corenative.crypto.BRCryptoTransferSubmitError;
                                         ^
   symbol:   class BRCryptoTransferSubmitError
   location: package com.breadwallet.corenative.crypto
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryDirect.java:19: error: package com.breadwallet.corenative.support does not exist
 import com.breadwallet.corenative.support.BRCryptoSecret;
                                          ^
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryDirect.java:109: error: package BRCryptoSecret does not exist
     public static native Pointer cryptoKeyCreateFromSecret(BRCryptoSecret.ByValue secret);
                                                                          ^
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryDirect.java:116: error: package BRCryptoSecret does not exist
     public static native BRCryptoSecret.ByValue cryptoKeyGetSecret(Pointer key);
                                        ^
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryDirect.java:250: error: cannot find symbol
     public static native Pointer cryptoTransferSubmitErrorGetMessage(BRCryptoTransferSubmitError error);
                                                                      ^
   symbol:   class BRCryptoTransferSubmitError
   location: class CryptoLibraryDirect
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryDirect.java:301: error: package BRCryptoClient does not exist
                                                            BRCryptoClient.ByValue client,
                                                                          ^
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryDirect.java:336: error: cannot find symbol
     public static native Pointer cryptoWalletManagerDisconnectReasonGetMessage(BRCryptoWalletManagerDisconnectReason reason);
                                                                                ^
   symbol:   class BRCryptoWalletManagerDisconnectReason
   location: class CryptoLibraryDirect
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryDirect.java:339: error: cannot find symbol
     public static native Pointer cryptoSyncStoppedReasonGetMessage(BRCryptoSyncStoppedReason reason);
                                                                    ^
   symbol:   class BRCryptoSyncStoppedReason
   location: class CryptoLibraryDirect
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManagerState.java:28: error: cannot find symbol
             public BRCryptoWalletManagerDisconnectReason reason;
                    ^
   symbol:   class BRCryptoWalletManagerDisconnectReason
   location: class disconnected_struct
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManagerState.java:38: error: cannot find symbol
             public disconnected_struct(BRCryptoWalletManagerDisconnectReason reason) {
                                        ^
   symbol:   class BRCryptoWalletManagerDisconnectReason
   location: class disconnected_struct
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoTransfer.java:111: error: cannot find symbol
     public Optional<BRCryptoTransferAttribute getAttributeAt(UnsignedLong index) {
                     ^
   symbol:   class BRCryptoTransferAttribute
   location: class BRCryptoTransfer
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoNetwork.java:62: error: cannot find symbol
     public BRCryptoNetworkCanonicalType getCanonicalType () {
            ^
   symbol:   class BRCryptoNetworkCanonicalType
   location: class BRCryptoNetwork
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoNetwork.java:296: error: cannot find symbol
     public BRCryptoSyncMode getDefaultSyncMode() {
            ^
   symbol:   class BRCryptoSyncMode
   location: class BRCryptoNetwork
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoNetwork.java:303: error: cannot find symbol
     public List<BRCryptoSyncMode getSupportedSyncModes() {
                 ^
   symbol:   class BRCryptoSyncMode
   location: class BRCryptoNetwork
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoNetwork.java:322: error: cannot find symbol
     public boolean supportsSyncMode(BRCryptoSyncMode mode) {
                                     ^
   symbol:   class BRCryptoSyncMode
   location: class BRCryptoNetwork
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:98: error: cannot find symbol
     public Optional<BRCryptoTransferAttribute getTransferAttributeAt(@Nullable BRCryptoAddress target, UnsignedLong index) {
                     ^
   symbol:   class BRCryptoTransferAttribute
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:111: error: cannot find symbol
     public Optional<BRCryptoTransferAttributeValidationError validateTransferAttribute(BRCryptoTransferAttribute attribute) {
                                                                                         ^
   symbol:   class BRCryptoTransferAttribute
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:111: error: cannot find symbol
     public Optional<BRCryptoTransferAttributeValidationError validateTransferAttribute(BRCryptoTransferAttribute attribute) {
                     ^
   symbol:   class BRCryptoTransferAttributeValidationError
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:128: error: cannot find symbol
     public Optional<BRCryptoTransferAttributeValidationError validateTransferAttributes(List<BRCryptoTransferAttribute attributes) {
                                                                                               ^
   symbol:   class BRCryptoTransferAttribute
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:128: error: cannot find symbol
     public Optional<BRCryptoTransferAttributeValidationError validateTransferAttributes(List<BRCryptoTransferAttribute attributes) {
                     ^
   symbol:   class BRCryptoTransferAttributeValidationError
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:201: error: cannot find symbol
                                                      List<BRCryptoTransferAttribute attributes) {
                                                           ^
   symbol:   class BRCryptoTransferAttribute
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoKey.java:11: error: package com.breadwallet.corenative.support does not exist
 import com.breadwallet.corenative.support.BRCryptoSecret;
                                          ^
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:41: error: cannot find symbol
                                                          BRCryptoClient client,
                                                          ^
   symbol:   class BRCryptoClient
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:44: error: cannot find symbol
                                                          BRCryptoSyncMode mode,
                                                          ^
   symbol:   class BRCryptoSyncMode
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:133: error: cannot find symbol
     public BRCryptoSyncMode getMode() {
            ^
   symbol:   class BRCryptoSyncMode
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:139: error: cannot find symbol
     public void setMode(BRCryptoSyncMode mode) {
                         ^
   symbol:   class BRCryptoSyncMode
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:193: error: cannot find symbol
     public void syncToDepth(BRCryptoSyncDepth depth) {
                             ^
   symbol:   class BRCryptoSyncDepth
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:326: error: cannot find symbol
     public void announceGetBlockNumberSuccess(BRCryptoClientCallbackState callbackState, UnsignedLong blockNumber) {
                                               ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:332: error: cannot find symbol
     public void announceGetBlockNumberSuccess(BRCryptoClientCallbackState callbackState, String blockNumber) {
                                               ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:338: error: cannot find symbol
     public void announceGetBlockNumberFailure(BRCryptoClientCallbackState callbackState) {
                                               ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:344: error: cannot find symbol
     public void announceGetTransactionsItem(BRCryptoClientCallbackState callbackState, BRCryptoTransferStateType status, byte[] transaction, UnsignedLong timestamp,
                                             ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:352: error: cannot find symbol
     public void announceGetTransactionsItemEth(BRCryptoClientCallbackState callbackState, String hash, String sourceAddr,
                                                ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:364: error: cannot find symbol
     public void announceGetTransactionsComplete(BRCryptoClientCallbackState callbackState, boolean success) {
                                                 ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:371: error: cannot find symbol
     public void announceGetTransfersItemGen(BRCryptoClientCallbackState callbackState,
                                             ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:407: error: cannot find symbol
     public void announceGetTransfersComplete(BRCryptoClientCallbackState callbackState, boolean success) {
                                              ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:414: error: cannot find symbol
     public void announceSubmitTransferSuccess(BRCryptoClientCallbackState callbackState) {
                                               ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:420: error: cannot find symbol
     public void announceSubmitTransferSuccess(BRCryptoClientCallbackState callbackState, String hash) {
                                               ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:426: error: cannot find symbol
     public void announceSubmitTransferFailure(BRCryptoClientCallbackState callbackState) {
                                               ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:432: error: cannot find symbol
     public void announceGetBalanceSuccess(BRCryptoClientCallbackState callbackState, String balance) {
                                           ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:438: error: cannot find symbol
     public void announceGetBalanceFailure(BRCryptoClientCallbackState callbackState) {
                                           ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:444: error: cannot find symbol
     public void announceGetGasPriceSuccess(BRCryptoClientCallbackState callbackState, String gasPrice) {
                                            ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:450: error: cannot find symbol
     public void announceGetGasPriceFailure(BRCryptoClientCallbackState callbackState) {
                                            ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:456: error: cannot find symbol
     public void announceGetGasEstimateSuccess(BRCryptoClientCallbackState callbackState, String gasEstimate, String gasPrice) {
                                               ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:462: error: cannot find symbol
     public void announceGetGasEstimateFailure(BRCryptoClientCallbackState callbackState, BRCryptoStatus status) {
                                               ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:468: error: cannot find symbol
     public void announceGetLogsItem(BRCryptoClientCallbackState callbackState, String hash, String contract,
                                     ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:480: error: cannot find symbol
     public void announceGetLogsComplete(BRCryptoClientCallbackState callbackState, boolean success) {
                                         ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:487: error: cannot find symbol
     public void announceGetBlocksSuccess(BRCryptoClientCallbackState callbackState, List<UnsignedLong blocks) {
                                          ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:496: error: cannot find symbol
     public void announceGetBlocksFailure(BRCryptoClientCallbackState callbackState) {
                                          ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:502: error: cannot find symbol
     public void announceGetTokensItem(BRCryptoClientCallbackState callbackState, String address, String symbol, String name,
                                       ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:510: error: cannot find symbol
     public void announceGetTokensComplete(BRCryptoClientCallbackState callbackState, boolean success) {
                                           ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:517: error: cannot find symbol
     public void announceGetNonceSuccess(BRCryptoClientCallbackState callbackState, String address, String nonce) {
                                         ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:523: error: cannot find symbol
     public void announceGetNonceFailure(BRCryptoClientCallbackState callbackState) {
                                         ^
   symbol:   class BRCryptoClientCallbackState
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManagerEvent.java:174: error: cannot find symbol
             public BRCryptoSyncDepth depth() {
                    ^
   symbol:   class BRCryptoSyncDepth
   location: class syncRecommended_struct
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManagerEvent.java:125: error: cannot find symbol
             public BRCryptoSyncStoppedReason reason;
                    ^
   symbol:   class BRCryptoSyncStoppedReason
   location: class syncStopped_struct
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManagerEvent.java:135: error: cannot find symbol
             public syncStopped_struct(BRCryptoSyncStoppedReason reason) {
                                       ^
   symbol:   class BRCryptoSyncStoppedReason
   location: class syncStopped_struct
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoTransferState.java:64: error: cannot find symbol
             public BRCryptoTransferSubmitError error;
                    ^
   symbol:   class BRCryptoTransferSubmitError
   location: class errored_struct
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoTransferState.java:74: error: cannot find symbol
             public errored_struct(BRCryptoTransferSubmitError error) {
                                   ^
   symbol:   class BRCryptoTransferSubmitError
   location: class errored_struct
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryIndirect.java:11: error: cannot find symbol
 import com.breadwallet.corenative.crypto.BRCryptoTransferAttribute;
                                         ^
   symbol:   class BRCryptoTransferAttribute
   location: package com.breadwallet.corenative.crypto
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryIndirect.java:33: error: cannot find symbol
     public static Pointer cryptoWalletCreateTransfer(Pointer wallet, Pointer target, Pointer amount, Pointer feeBasis, SizeT attributesCount, BRCryptoTransferAttribute[] attributes) {
                                                                                                                                               ^
   symbol:   class BRCryptoTransferAttribute
   location: class CryptoLibraryIndirect
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryIndirect.java:38: error: cannot find symbol
     public static int cryptoWalletValidateTransferAttributes(Pointer wallet, SizeT countOfAttributes, BRCryptoTransferAttribute[] attributes, IntByReference validates) {
                                                                                                       ^
   symbol:   class BRCryptoTransferAttribute
   location: class CryptoLibraryIndirect
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryIndirect.java:65: error: cannot find symbol
         Pointer cryptoWalletCreateTransfer(Pointer wallet, Pointer target, Pointer amount, Pointer feeBasis, SizeT attributesCount, BRCryptoTransferAttribute[] attributes);
                                                                                                                                     ^
   symbol:   class BRCryptoTransferAttribute
   location: interface LibraryInterface
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/CryptoLibraryIndirect.java:66: error: cannot find symbol
         int cryptoWalletValidateTransferAttributes(Pointer wallet, SizeT countOfAttributes, BRCryptoTransferAttribute[] attributes, IntByReference validates);
                                                                                             ^
   symbol:   class BRCryptoTransferAttribute
   location: interface LibraryInterface
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManager.java:136: error: cannot find symbol
         return BRCryptoSyncMode.fromCore(CryptoLibraryDirect.cryptoWalletManagerGetMode(thisPtr));
                ^
   symbol:   variable BRCryptoSyncMode
   location: class BRCryptoWalletManager
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:108: error: cannot find symbol
         ).transform(BRCryptoTransferAttribute::new);
                     ^
   symbol:   class BRCryptoTransferAttribute
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:116: error: cannot find symbol
         BRCryptoTransferAttributeValidationError error = BRCryptoTransferAttributeValidationError.fromCore(
         ^
   symbol:   class BRCryptoTransferAttributeValidationError
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:116: error: cannot find symbol
         BRCryptoTransferAttributeValidationError error = BRCryptoTransferAttributeValidationError.fromCore(
                                                          ^
   symbol:   variable BRCryptoTransferAttributeValidationError
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:134: error: cannot find symbol
         BRCryptoTransferAttribute[] attributeRefs = new BRCryptoTransferAttribute[attributesCount];
         ^
   symbol:   class BRCryptoTransferAttribute
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:134: error: cannot find symbol
         BRCryptoTransferAttribute[] attributeRefs = new BRCryptoTransferAttribute[attributesCount];
                                                         ^
   symbol:   class BRCryptoTransferAttribute
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:137: error: cannot find symbol
         BRCryptoTransferAttributeValidationError error = BRCryptoTransferAttributeValidationError.fromCore(
         ^
   symbol:   class BRCryptoTransferAttributeValidationError
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:137: error: cannot find symbol
         BRCryptoTransferAttributeValidationError error = BRCryptoTransferAttributeValidationError.fromCore(
                                                          ^
   symbol:   variable BRCryptoTransferAttributeValidationError
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:205: error: cannot find symbol
         BRCryptoTransferAttribute[] attributeRefs = new BRCryptoTransferAttribute[attributesCount];
         ^
   symbol:   class BRCryptoTransferAttribute
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWallet.java:205: error: cannot find symbol
         BRCryptoTransferAttribute[] attributeRefs = new BRCryptoTransferAttribute[attributesCount];
                                                         ^
   symbol:   class BRCryptoTransferAttribute
   location: class BRCryptoWallet
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoTransfer.java:119: error: cannot find symbol
         ).transform(BRCryptoTransferAttribute::new);
                     ^
   symbol:   class BRCryptoTransferAttribute
   location: class BRCryptoTransfer
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoNetwork.java:63: error: cannot find symbol
         return BRCryptoNetworkCanonicalType.fromCore(
                ^
   symbol:   variable BRCryptoNetworkCanonicalType
   location: class BRCryptoNetwork
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoNetwork.java:297: error: cannot find symbol
         return BRCryptoSyncMode.fromCore(
                ^
   symbol:   variable BRCryptoSyncMode
   location: class BRCryptoNetwork
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoNetwork.java:306: error: cannot find symbol
         List<BRCryptoSyncMode modes = new ArrayList<();
              ^
   symbol:   class BRCryptoSyncMode
   location: class BRCryptoNetwork
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoNetwork.java:313: error: cannot find symbol
                     modes.add(BRCryptoSyncMode.fromCore(modeInt));
                               ^
   symbol:   variable BRCryptoSyncMode
   location: class BRCryptoNetwork
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoKey.java:222: error: cannot find symbol
                         new BRCryptoSecret(secret).toByValue()
                             ^
   symbol:   class BRCryptoSecret
   location: class BRCryptoKey
 /home/triguntu/breadwallet-core/Java/corenative/src/main/java/com/breadwallet/corenative/crypto/BRCryptoWalletManagerEvent.java:175: error: cannot find symbol
                 return BRCryptoSyncDepth.fromCore(depthEnum);
                        ^
   symbol:   variable BRCryptoSyncDepth
   location: class syncRecommended_struct
 82 errors
 
 FAILURE: Build failed with an exception.
 
 * What went wrong:
 Execution failed for task ':corenative-android:compileDebugJavaWithJavac'.
  Compilation failed; see the compiler error output for details.
 
 * Try:
 Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
 
 * Get more help at https://help.gradle.org
 
 Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
 Use '--warning-mode all' to show the individual deprecation warnings.
 See https://docs.gradle.org/6.8/userguide/command_line_interface.html#sec:command_line_warnings
 
 BUILD FAILED in 2s
 27 actionable tasks: 21 executed, 6 up-to-date

Can you help me with those issues ? thanks

Having problem to compile on Linux(ubuntu etc)

Hi pals,

I tryed to compile your code on ubuntu but failed. Maybe need some help from you guys, thanks.

  1. which compiler you are using? gcc? g++? or something else.
  2. what standard of the compiler are used? c89, c99, c11, gnu99, etc.

Cheers,
Poon

Can't send bitcoin

Hi,

I have a strange bug in the BRD app for iOS version 3.11 Build 3.
The amount is 0.00025 BTC and the fee is 0.000091 BTC

I cannot send Bitcoin, see the attached screenshots

image1

image2

Compiling the core library on Linux(ubuntu)

trying to compile the core lib under ubuntu using https://github.com/breadwallet/breadwallet-core/blob/master/Java/Core/CMakeLists.txt and facing several problems:

  1. core/support/BRAssert.c:196:42: error: ‘PTHREAD_MUTEX_RECURSIVE’ undeclared
    Solved by CFLAG _XOPEN_SOURCE=600

  2. core/support/BRFileService.c:286:33: error: ‘DT_REG’ undeclared (first use in this function)
    Solved by CFLAG _GNU_SOURCE

  3. Required code change:
    core/support/BRAssert.c:138:5: error: too few arguments to function ‘pthread_setname_np’

core/src/main/cpp/core/support/BRInt.h:138:31: error: initializer element is not constant
#define uint256(s) ((UInt256) { .u8 = {
^
Can you help me with those issues? Thanks!

SegWit

Will Breadwallet support and signal SegWit on its transactions?

MISSING BTC

Hello, i were using multibit hd and Breadwallet together. I used both of them with 1 wallet opened on both. Suddenly my pc broke and i tried to restore my wallet on new pc. When i restored one btc address with money on it was missing. i tried to generate private addresses from BIP39 mnemonic but i couldnt find that recieving addres in the list of 50000 address. Money is still unspent. Help me to get it back i know wallet words and everything. If someone helps me i will gift him/her a bunch of a beer on btc address :)
I reinstalled mac os everything is deleted. I know what was the wallet words 100% but there is not that addres everywhere i try. In electrum bread or etc.
When i restore wallet every other transactions are visible but the address is missing only that address.. Multibit had bugs that moment and said wrong password and etc..
If someone helps bounty will be 1000 euros.

iOS connection issues

Hey guys, I was able to compile and successfully run this lib on iOS and then created a fresh Bitcoin wallet but I'm getting tons of network connection issues, like:

134.119.20.251:40428 connecting
109.235.255.34:40428 connecting
18.205.18.126:40428 connect error: Connection refused
18.205.18.126:40428 disconnected
13.59.51.53:40428 connecting
134.119.20.251:40428 connect error: Connection refused
134.119.20.251:40428 disconnected
13.57.233.190:40428 connecting
109.235.255.34:40428 connect error: Connection refused
109.235.255.34:40428 disconnected
69.61.93.240:40428 connecting
69.61.93.240:40428 connect error: Connection refused
69.61.93.240:40428 disconnected
....

As a result, my SPV client is unable to connect to the Bitcoin peer-to-peer network at all.

This same issue happens when running on the iOS simulator or an actual iOS device, on both testnet or maintest networks. (BTW, not sure if that matters at all, but my macOS firewall is currently disabled as well.)

Any thoughts? Thanks a lot for the lib!

Building as static iOS/macOS library

Hi! I'm trying to attach your perfect library to my project but I have some various issues in linking it via Xcode target.

How can I prebuild it to just importing like ".framework"? Is it possible at all? Maybe there are some tutorials I missed.

Thanks!

Modifying derivation path producing unexpected keys

I am attempting to support bip 49. I seem to be correctly deriving keys, but the address does not match what I am expecting.

Leveraging this site for comparison. https://iancoleman.io/bip39/

My test seed is
abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
With a darivation path of m/49'/0'/0'/0

The first public and private keys are correct and matching whats in the test site, but the address is correct instead of the address:
37VucYSaXLCAsxYyAPfbSi9eh4iEcbShgf

I get:
1PkaFBUcyAccDp2Xo2K8MqduVMgMB792r2

Is there something else that needs to be changed to get the correct address?

Build error when compiled with C++ 11

Hi, I try to use bread wallet core as SDK of my C++ app compiled by Clang on macOS, but encountered some compile errors in the following code in BRInt.h.

inline static void UInt16SetBE(void *b2, uint16_t u)
{
    *(union _u16 { uint8_t u8[16/8]; } *)b2 = (union _u16) { (u >> 8) & 0xff, u & 0xff };
}
error: '_u16' cannot be defined in a type specifier
[build]     *(union _u16 { uint8_t u8[16/8]; } *)b2 = (union _u16) { (u >> 8) & 0xff, u & 0xff };

rror: non-constant-expression cannot be narrowed from type 'int' to 'uint8_t' (aka 'unsigned char') in initializer list [-Wc++11-narrowing]
[build]     *(union _u16 { uint8_t u8[16/8]; } *)b2 = (union _u16) { (u >> 8) & 0xff, u & 0xff };

note: insert an explicit cast to silence this issue
[build]     *(union _u16 { uint8_t u8[16/8]; } *)b2 = (union _u16) { (u >> 8) & 0xff, u & 0xff };

Even after I insert casting as following, it still shows _error: 'u16' cannot be defined in a type specifier

inline static void UInt16SetBE(void *b2, uint16_t u)
{
    *(union _u16 { uint8_t u8[16/8]; } *)b2 = (union _u16) { (uint8_t)((u >> 8) & 0xff), (uint8_t)(u & 0xff) };
}

I am not familiar with the syntax. Can someone help me?

Restore not finding transactions

Restoring a wallet with a modified derivation path does not restore transactions.

Where in core would I need to modify to ensure transactions are found in the Merkle blocks?

same seed, create address by bip32 ,the address not same

`
UInt512 seed = UINT512_ZERO;
char* phraseString = "potato police mammal floor vivid gold elder robot human coin salt become";
BRBIP39DeriveKey(seed.u8, phraseString, NULL);

BRMasterPubKey mpk = BRBIP32MasterPubKey(&seed, sizeof(seed));
uint8_t pubkey[33];
BRBIP32PubKey(pubkey, 33, mpk, 0, 0|BIP32_HARD);
BRKey key;
BRKeySetPubKey(&key, pubkey, 33);
BRAddress address;
BRKeyAddress(&key, address.s, 75 );
printf("\n address 00:%s", address.s);
BRKey k;
BRBIP32PrivKey(&k, &seed, sizeof(seed), 0, 0|BIP32_HARD);
BRKeyAddress(&k, address.s, 75 );
printf("\n address 00:%s", address.s);

`

`
result:
address 00:mh4cRJMez2NLgCd2yLHqJv7f5HYHpSQsHR
address 00:mpCEStKUg1UuN8adit4moP5jwFigSHJmDs

`

Derivation Path

Is is possible to modify the derivation path and if so would that be done in BRBIP32sequence.c?

Memory crash when calling BRPeerManagerFree after new tx happen

I have a thread to monitor wallet, the thread code is copyed from test.c with little modifications,
After a new transaction happens and I let threadExit to 1 to quit the thread, the program crashed, the debug info is:
***** Error in `/data/breadwallet-core/test': free(): invalid pointer: 0x00007fffe4061520 *****

(gdb) bt
#0  0x00007ffff6dc3277 in raise () from /lib64/libc.so.6
#1  0x00007ffff6dc4968 in abort () from /lib64/libc.so.6
#2  0x00007ffff6e05d37 in __libc_message () from /lib64/libc.so.6
#3  0x00007ffff6e0e499 in _int_free () from /lib64/libc.so.6
#4  0x0000000000419679 in BRPeerManagerFree (manager=0x7ffff0015060) at BRPeerManager.c:1994
#5  0x0000000000470623 in walletProcess (args=0x0) at test.c:2979
#6  0x00007ffff7bc6e25 in start_thread () from /lib64/libpthread.so.0
#7  0x00007ffff6e8bbad in clone () from /lib64/libc.so.6

Can somebody know how to handle this problem?

RSK integration

I'm interested in integrating RSK network to Breadwallet.
RSK is a fork of Ethereum and, therefore, I assume that cloning and adapting ethereum folder should be necessary (but not sure if enough). Am I right?
Any guidance you can offer will be very helpful.

paper key restore race condition

Under certain conditions, in particular, in a paper key restore, the merkleblock can arrive before the transaction. In this case, the transaction will not receive blockheight and timestamp in BRWalletUpdateTransaction as called by _peerRelayedBlock. When BRWalletRegisterTransaction is later called, BRWalletUpdateTransaction is never called again.

I'm trying to figure out if there is a way to look up stored merkleblocks for the transaction, or cache the UpdateTransaction info... maybe a map of txhash to block? or a BRSet of blocks to check for txs? I need a hash table!

Bitcoin Cash: Support aserti3-2d DAA

On November 15 there will be a planned network upgrade on the Bitcoin Cash network that will activate a new and non backwards compatible Difficulty Adjustment Algorithm called aserti3-2d. Breadwallet needs to implement it since the wallet is verifying the block headers and thus verifying the difficulty.

Specifications can be found here:
https://www.bitcoincash.org/spec/2020-11-15-upgrade.html
https://upgradespecs.bitcoincashnode.org/2020-11-15-upgrade/

Please note that there will also be an additional soft-fork as specified in the "Coinbase Rule" by Bitcoin ABC and most certainly a chain split since no other full node software is implementing it. Not implementing the soft-fork will let the wallet follow the chain with most Proof-of-Work.

blocks received cannot be written to disk by saveBlocks callback

I can receive a bunch of block from peers, but the saveBlocks callback didn't be called in _peerRelayedBlock function. The printing is as followers:

13.73.0.194:18333 relayed orphan block 6e52e1f3fac1207c5f272f53464dd4ff45eec53c9258a8d907080e0200000000, previous e05b176c774fc689ee650af2cad68b2e98fcdc85e9185aa3ccf0ff0b00000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
13.73.0.194:18333 relayed orphan block 80a6d352b71441aaa843d798f96c156f4a6a7898049094b39468160900000000, previous 6e52e1f3fac1207c5f272f53464dd4ff45eec53c9258a8d907080e0200000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
13.73.0.194:18333 relayed orphan block 65618d67743c13161e356d6bfbe937d681a247928021461425f5ce0a00000000, previous 80a6d352b71441aaa843d798f96c156f4a6a7898049094b39468160900000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
13.73.0.194:18333 relayed orphan block f8a7f35da1e4564dbcf925b0cc427aaa0aa436a13b43b94c4d429c0200000000, previous 65618d67743c13161e356d6bfbe937d681a247928021461425f5ce0a00000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
13.73.0.194:18333 relayed orphan block 15e78907ee0c82e29694edd52b070cdf1904f1242e5a49c46ecb270700000000, previous f8a7f35da1e4564dbcf925b0cc427aaa0aa436a13b43b94c4d429c0200000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
13.73.0.194:18333 relayed orphan block de2e8cf14a77400c000e3529f6e8ebedd656b382435b412b58e21e0c00000000, previous 15e78907ee0c82e29694edd52b070cdf1904f1242e5a49c46ecb270700000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
13.73.0.194:18333 relayed orphan block 4057c542bdb6b990996d3c09f2812c802118925497fd1af5fea4a10700000000, previous de2e8cf14a77400c000e3529f6e8ebedd656b382435b412b58e21e0c00000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
13.73.0.194:18333 relayed orphan block 8724faab1eeca7fd371f623b53a629b5aacf9b82a41cc3564aae5a0e00000000, previous 4057c542bdb6b990996d3c09f2812c802118925497fd1af5fea4a10700000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
13.73.0.194:18333 relayed orphan block 1f80ed59ed1cb32e87d2b366246ab59b3d1662a501cc4b67bea7de0700000000, previous 8724faab1eeca7fd371f623b53a629b5aacf9b82a41cc3564aae5a0e00000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
13.73.0.194:18333 relayed orphan block f02d4038010bab374eda2422438b82cfad3bbc32abadd14b0b3cd20a00000000, previous 1f80ed59ed1cb32e87d2b366246ab59b3d1662a501cc4b67bea7de0700000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
13.73.0.194:18333 relayed orphan block b8c13fb6ca1aed8d8b3728e68b5539b8552a2e57e23375cab822e60a00000000, previous f02d4038010bab374eda2422438b82cfad3bbc32abadd14b0b3cd20a00000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
13.73.0.194:18333 relayed orphan block aaa33e704a83d111f69fe648ced4a8d9cac8da7a1b64a4baaba8980a00000000, previous b8c13fb6ca1aed8d8b3728e68b5539b8552a2e57e23375cab822e60a00000000, last block is 000000000000033000007ffcc69f020000000000000000640000000000f19100, height 0
...........................

can somebody know the reason?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.