Coder Social home page Coder Social logo

bisq-core's Introduction

bisq-core

bisq-core's People

Contributors

abigail830 avatar alex-mamchenkov avatar artocash avatar balajikandavel avatar cbeams avatar chirhonul avatar console-cowboy avatar cryptokat avatar dalijolijo avatar drewcforbes avatar exceed-arthur avatar fkfk avatar jared201 avatar ltcextreme avatar manfredkarrer avatar mvidberg avatar rex4539 avatar ripcurlx avatar sqrrm avatar tohsnoom avatar wqking avatar

Stargazers

 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

bisq-core's Issues

Round fiat values to fewer significant figures

As posted by @marco4444 in proposals bisq-network/proposals#17

In order to avoid that bisq-trades can be assigned to a person via time/amount analyses (on the fiat side), it is recommended to trade with full euro amounts (0 cents), as there are then on average 39 times as many transfers of exactly the same amount on the same day in the entire currency area (compared to the average of the frequencies of the other 99 possibilities .xy).
With the current crooked amounts, it is only a question of time when many of them can be assigned to a person after the fact, since the complete history of the amounts/times is public. The smaller a currency area is, the more important this is, since the same amounts occur less frequently on the same day than for dollars and euros. Unfavorable cents such as.74 and.93 are even 390 times less common than rounded amounts and there is a high risk to be the only person in the currency area using the same amount on the same day.

Extract bisq.asset package to its own repository

  • Do the extraction into blabno/bisq-assets (a repository of your own creation)
  • Submit a PR to bisq-network/bisq-docs updating list-asset.adoc accordingly
  • Submit a PR to bisq-network/bisq updating the .mrconfig and .gitignore files accordingly.
  • Submit a PR to bisq-network/bisq-core deleting the package there and requesting @cbeams to review blabno/bisq-assets and transfer it into the bisq-network repo
  • (at the same time as the PR above) Grant @cbeams admin rights on blabno/bisq-assets so he can actually perform the repo transfer
  • @cbeams does the transfer and merge all the above PRs

BSQ tx confirmation count is wrong

When sending a BSQ transaction the confirmation counts double after restarting the client. The receiver doesn't count double.

See highlighted transaction after two blocks. For Bob it indicates 3 transactions but for Charlie only 2.

image
image

Post-Segwit Litecoin Addresses Don't Work

Build: Stable v0.6.7
Operating System: Windows 10, Ubuntu 17.10
Issue: Presently all "M" addresses for Litecoin post-Segwit fail the validation check when attempting to configure a Litecoin Altcoin account. The client still expects old "P2SH" addresses, and will readily accept converted or legacy addresses as normal.

Fix bug with Sepa offers and Sepa instant taker

The handling of Sepa an Sepa instant accounts is not correct.
There are 2 bugs:

  1. If the offer is SEPA and the the taker has a SEPA INSTANT account and takes that offer the cehck of the contract fails on the maker side and lead to lost taker fee on the takers side.

  2. If a maker creates an offer with a SEPA INSTANT account a taker with a SEPA account can take it. This should not be allowed as the maker would expect an instant transfer but the taker has only a SEPA account.

Gradle Build Failure with Java 10 on MacOs High Sierra

java.lang.ExceptionInInitializerError

(No message provided)
com.sun.tools.javac.code.TypeTags

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileJava'.Open stacktrace
Caused by: java.lang.RuntimeException: java.lang.ExceptionInInitializerErrorOpen stacktrace
Caused by: java.lang.ExceptionInInitializerError: (No message provided)Open stacktrace
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.code.TypeTagsClose stacktrace
at lombok.launch.ShadowClassLoader.loadClass(ShadowClassLoader.java:422)
at lombok.javac.JavacTreeMaker$SchroedingerType.getFieldCached(JavacTreeMaker.java:156)
at lombok.javac.JavacTreeMaker$TypeTag.typeTag(JavacTreeMaker.java:244)
at lombok.javac.Javac.(Javac.java:155)
at lombok.javac.handlers.HandleGetter.(HandleGetter.java:303)
at lombok.core.SpiLoadUtil$1$1.next(SpiLoadUtil.java:111)
at lombok.javac.HandlerLibrary.loadAnnotationHandlers(HandlerLibrary.java:171)
at lombok.javac.HandlerLibrary.load(HandlerLibrary.java:156)
at lombok.javac.JavacTransformer.(JavacTransformer.java:44)
at lombok.javac.apt.LombokProcessor.init(LombokProcessor.java:87)
at lombok.core.AnnotationProcessor$JavacDescriptor.want(AnnotationProcessor.java:87)
at lombok.core.AnnotationProcessor.init(AnnotationProcessor.java:140)
at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init(AnnotationProcessor.java:69)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.(JavacProcessingEnvironment.java:674)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:771)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:866)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$2100(JavacProcessingEnvironment.java:110)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1202)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1311)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1250)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:928)
at com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:100)
at com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:142)
at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:96)
at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:90)
at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:50)
at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:37)
at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)
at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:51)
at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:37)
at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:35)
at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:25)
at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:156)
at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:141)
at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:114)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:66)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)

remove bitcoinj dependency

This will probably be a bit of a political issue, but I would really like to see bisq running without bitcoinj.

The topic was raised in Tech Session #4 and it seems important to address it properly. Please let me know if there a better place to have this discussion.

The two main reasons that make it very obvious to me are:

  • code diverged from bitcoin core and is obsolete
  • makes bisq depends on a white-list of «trusted» nodes

Another view on bitcoinj that might be useful: Petter Todd describing it as a possible attack vector (@cbeams you were in the room if I'm not mistaken ;).

payment methods

I investigated the Amazon visa card potential as a payment method. Here are the findings:

  1. extremely easy and anonymous for first-time/beginner buyers
  2. Cards purchased on-line
  3. Cards available in $50. and $100. amounts
  4. Seller would have to have full amount in escrow, no potential for charge-back, no risk to buyer
  5. Cards would be sent by mail from buyer to seller, clearly a downside, but no bank is involved on either side of transaction.
  6. These are smaller transactions but could entice beginner buyers who don't understand satoshi's and make available some "Easy Buy" option $100 or $500.00 in btc at market price.
  7. market price at the time offer is accepted
  8. the purchase fee for the cards is $5.95 per $100.00, so $30.00 fee per $500.00, which sounds high but it's paying for ease and anonymous buying
  9. I'm not sure where bisq gets it's tx fees, so don't know where in the trade that comes from
  10. From a seller perspective, if I want to sell small amounts of btc $500. or $1,000. here and there, it's not easy if I don't want weird payments arriving in my bank.
  11. This system avoids kyc for both buyer/seller, with the exception of a physical address to receive the cards.
  12. I don't see this method different than buying something on ebay, instead of the seller knowing an address, the buyer would know the address, (remedied w a PO box if it works).
  13. Maybe a way that after the cards arrived and are checked the btc is sent either directly to bisq to relay, or an address is provided by buyer at time of purchase. (?)
  14. These gift cards are only available in the US
  15. waiting for snail mail is no different than waiting for coinbase to process.
  16. There are more and more on-ramps to buy, but fewer anonymous off-ramps for sellers without lots of invasive kyc.
  17. These are my initial findings and will be a guinea pig to provide $500. in btc to hold in escrow to see if it works
    18.Clearly this is not a system for whale buyers/sellers, but they don't need an "Easy Buy/Sell" button!
  18. I suggest this be separate from the current offers page, a UI so simple my mom could buy a small amount of btc
  19. https://www.amazon.com/Visa-Gift-Card-plus-Purchase/dp/B01MSBQB1P/ref=pd_rhf_ee_p_img_1?_encoding=UTF8&psc=1&refRID=89M3AP89TMDCKC6SSGSM

(long link, not sure it will work)

Add verification of hash of jar file

We can create a deterministic jar file, create a Sha256 hash from it and upload that with the binaries to Github. Users who download the app with the in-app installer will download the hash of the jar to their local data directory name with the version nr. (e.g. Bisq-0.7.0.jar.txt).

EDITED:
After download and restart of the app we verify if the hash of the running jar is the same as the downloaded hash. That happens at startup before any relevant operations have been started.
This will add additional security to ensure the jar file in the binary is not manipulated and matches the code version of the release.

The deterministic jar can be reproduced by anyone from the release commit. Users who don't use the in-app downloader can do the verification manually by either downloading the hash of the jar and adding it to the data directory or by running the hash verification by themselves.

Deterministic builds for the binary itself is unfortunately more complex. Any dev experienced with that is highly welcome to help us to get last mile also solved.

UPDATE:
It does not make sense to verify from the running jar as if it was modified the jar check can have been removed so we do not gain any security by that.
There still might be possibilities to verify the jar inside the binary before starting it manually (at least on OSX it is rather trivial to open the .app file and do manually a check with 'shasum -a 256' with the jar file inside the Contents/Java/Bisq-{version}.jar). With .deb it should be possible as well. Not sure if that is possible/easy with exe files.

Error while building the source

I started all over again from scratch and created a new implementation of the Coin class, test class and added the new coin name to the meta-inf list and got the error below, still using MacOS high sierra with JDK 1.8.161

`./gradlew build

Task :compileJava FAILED
/Users/jared/bisq-core-new/src/main/java/bisq/core/dao/param/ParamChangeEventList.java:57: error: cannot find symbol
public static PersistableEnvelope fromProto(PB.ParamChangeEventList proto) {
^
symbol: class ParamChangeEventList
location: class PB
/Users/jared/bisq-core-new/src/main/java/bisq/core/dao/param/ParamChangeEvent.java:44: error: cannot find symbol
public PB.ParamChangeEvent toProtoMessage() {
^
symbol: class ParamChangeEvent
location: class PB
/Users/jared/bisq-core-new/src/main/java/bisq/core/dao/param/ParamChangeEvent.java:52: error: cannot find symbol
public static ParamChangeEvent fromProto(PB.ParamChangeEvent proto) {
^
symbol: class ParamChangeEvent
location: class PB
3 errors

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':compileJava'.

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

BUILD FAILED in 10s
1 actionable task: 1 executed
`

Failed to compile

Master the head commit is,
e2c6d00

mvn test gives error,

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project bisq-core: Compilation failure
[ERROR] /E:/projects/wqking/bisq-core/src/main/java/bisq/core/proto/persistable/CorePersistenceProtoResolver.java:[32,32] cannot find symbol
[ERROR]   symbol:   class PersistableNetworkPayloadCollection
[ERROR]   location: package bisq.network.p2p.storage

There is no class PersistableNetworkPayloadCollection in package bisq-p2p snapshot, though I found it exists in another version.
This happens on both Ubuntu and Win10, JDK 8

Class cast exception on startup

If I currently start after a full re-build desktop/build/app/bin/bisq-desktop the application throws following error:

Aug-20 16:17:34.221 [readFromResourcesThread] ERROR b.c.s.CommonSetup: Uncaught Exception from thread readFromResourcesThread 
Aug-20 16:17:34.221 [readFromResourcesThread] ERROR b.c.s.CommonSetup: throwableMessage= bisq.core.dao.state.BsqState cannot be cast to bisq.core.trade.statistics.TradeStatistics2Store 
Aug-20 16:17:34.222 [readFromResourcesThread] ERROR b.c.s.CommonSetup: throwableClass= class java.lang.ClassCastException 
Aug-20 16:17:34.224 [readFromResourcesThread] ERROR b.c.s.CommonSetup: Stack trace:
java.lang.ClassCastException: bisq.core.dao.state.BsqState cannot be cast to bisq.core.trade.statistics.TradeStatistics2Store
	at bisq.core.trade.statistics.TradeStatistics2StorageService.getMap(TradeStatistics2StorageService.java:63)
	at bisq.network.p2p.storage.persistence.StoreService.putIfAbsent(StoreService.java:76)
	at bisq.network.p2p.storage.persistence.AppendOnlyDataStoreService.lambda$put$3(AppendOnlyDataStoreService.java:81)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at bisq.network.p2p.storage.persistence.AppendOnlyDataStoreService.put(AppendOnlyDataStoreService.java:80)
	at java.util.concurrent.ConcurrentHashMap.forEach(ConcurrentHashMap.java:1597)
	at bisq.network.p2p.storage.persistence.AppendOnlyDataStoreService.transferDeprecatedDataStructure(AppendOnlyDataStoreService.java:66)
	at bisq.network.p2p.storage.persistence.AppendOnlyDataStoreService.readFromResources(AppendOnlyDataStoreService.java:59)
	at bisq.network.p2p.storage.P2PDataStorage.readFromResources(P2PDataStorage.java:155)
	at bisq.core.app.SetupUtils.lambda$readFromResources$1(SetupUtils.java:98)
	at java.lang.Thread.run(Thread.java:748)
 
java.lang.ClassCastException: bisq.core.dao.state.BsqState cannot be cast to bisq.core.trade.statistics.TradeStatistics2Store
	at bisq.core.trade.statistics.TradeStatistics2StorageService.getMap(TradeStatistics2StorageService.java:63)
	at bisq.network.p2p.storage.persistence.StoreService.putIfAbsent(StoreService.java:76)
	at bisq.network.p2p.storage.persistence.AppendOnlyDataStoreService.lambda$put$3(AppendOnlyDataStoreService.java:81)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at bisq.network.p2p.storage.persistence.AppendOnlyDataStoreService.put(AppendOnlyDataStoreService.java:80)
	at java.util.concurrent.ConcurrentHashMap.forEach(ConcurrentHashMap.java:1597)
	at bisq.network.p2p.storage.persistence.AppendOnlyDataStoreService.transferDeprecatedDataStructure(AppendOnlyDataStoreService.java:66)
	at bisq.network.p2p.storage.persistence.AppendOnlyDataStoreService.readFromResources(AppendOnlyDataStoreService.java:59)
	at bisq.network.p2p.storage.P2PDataStorage.readFromResources(P2PDataStorage.java:155)
	at bisq.core.app.SetupUtils.lambda$readFromResources$1(SetupUtils.java:98)
	at java.lang.Thread.run(Thread.java:748)
Aug-20 16:17:50.235 [JavaFX Application Thread] ERROR b.n.p.n.TorNetworkNode: A timeout occurred at shutDown 
Aug-20 16:18:05.235 [JavaFX Application Thread] WARN  b.c.a.BisqExecutable: Timeout triggered resultHandler

It works if I start the current master from IntelliJ, but I run into this issue when building from command line.

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.