Git Product home page Git Product logo

java-api's People

Contributors

carlosmiranda avatar davvd avatar llorllale avatar paulodamaso avatar renovate[bot] avatar rultor avatar victornoel avatar yegor256 avatar

Stargazers

 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

java-api's Issues

Network should allow to pull all wallets

The Network interface should contain method, that will allow pulling all wallets.

public interface Network {
    // Pull all wallets from the network.
    Wallets wallets();
}

Taxes.java:34-40: Implement tax payment to remote nodes....

The puzzle 40-432fb579 from #40 has to be resolved:

* @todo #40:30min Implement tax payment to remote nodes.
* Payment should happen only if the wallet is in debt of more than
* 1 Zold. Debt is difference between current taxes that should have
* been paid by wallet (see whitepaper for formula) and how much it
* already paid in the past. A first algorithm could pay the
* max to each node until there is nothing else to pay. The test
* must also be updated.

The puzzle was created by Victor Noël on 28-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

CpTransaction.java:30-32: Implement the computation of...

The puzzle 29-4f17ced3 from #29 has to be resolved:

* @todo #29:30min Implement the computation of the transaction string
* based on the white paper. The unit test should also be updated to
* ensure it works as expected.

The puzzle was created by Victor Noël on 25-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Taxes.java:34-41: Implement tax payment to remote nodes....

The puzzle 61-7c0a7e0c from #61 has to be resolved:

* @todo #61:30min Implement tax payment to remote nodes.
* Payment should happen only if the wallet is in debt of more than
* 1 Zold. Debt is difference between current taxes that should have
* been paid by wallet (see whitepaper for formula) and how much it
* already paid in the past. A first algorithm could pay the
* max to each node until there is nothing else to pay. After completion the
* test methods TaxesTest.pay and TaxesTest.didntPayIfLessThanOneZLDDebt
* new tests covering other possible situations must be added.

The puzzle was created by rultor on 04-Dec-18.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Code duplication in RtTransaction

We have code duplication in RtTransaction. Each method parses transaction string in a same manner:

final String value = new UncheckedText(
    new IoCheckedScalar<>(
        new ItemAt<>(
            index, new SplitText(this.transaction, ";")
        )
    ).value()
).asString();

We can extract this to a method or a class.
Furthermore we can simplify the above example to:

final String ident = new IoCheckedScalar<>(
    () -> new ItemAt<>(0, new SplitText(this.transaction, ";"))
        .value().asString()
).value();

WalletsIn.java:93-95: Create the new wallet in the path...

The puzzle 12-1be65647 from #12 has to be resolved:

// @todo #12:30min Create the new wallet in the path with all wallets.
// It should contain the correct content according to the
// white paper. Also add a the test to validate everything is ok.

The puzzle was created by rultor on 08-Aug-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

RtTransaction.java:78-80: Implement prefix() by parsing...

The puzzle 15-f9a60893 from #15 has to be resolved:

// @todo #15:30min Implement prefix() by parsing the string representation
// of transaction according to the pattern, described in the white
// paper. Replace relevant test case with actual tests.

The puzzle was created by Tolegen Izbassar on 06-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Documentation is inconsistent with Interfaces

The README.md is outdated. There is no find method in Wallets. Also no pull method in Wallet. The Amount interface does not exist.

With outdated documentation, it's hard to understand how the interfaces are intended to be used.

WalletTest.java:81-84: This test had to be marked as...

The puzzle 21-829d3247 from #21 has to be resolved:

// @todo #21:30min This test had to be marked as ignored after #30 because
// CpTransaction does not create the transaction string correctly yet.
// When CpTransaction is correctly implemented uncomment this method and
// make sure that it's working correctly

The puzzle was created by Paulo Lobo on 13-Aug-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Incorrect Network.push specification

In the process of solving #40, I am faced with a problem with the existing code.

The javadoc of Network.push says:

    /**
     * Push the wallet to the network. The network will select the
     * remote node with the highest score (with a minimum of {@code 16}).
     * @param wallet The wallet
     */
    void push(Wallet wallet);

But I don't think that is correct: the papers talks about selecting nodes with high score and a minimum of 16 when paying taxes. This has nothing to do with pushing, which should be done to every known nodes (even though they can decide not to accept the wallet).

The concept of paying taxes and of pushing should be separated (it is the case in the ruby implementation).

Either Wallet should be responsible of paying taxes, or Network should.

I would be favour of letting Network do that simply because it would be best, design-wise, to have Wallet being ignorant of Network and Remotes matters. Network already manipulates both Remotes and Wallets.

@llorllale what do you think?

@paulodamaso since you did create the @todos I suppose you have maybe an opinion?

Upgrade qulice to 0.17.3

New qulice version brings following important changes:

  • removal of @author tag (it is prohibited now)
  • removal of @version tag (it is prohibited now)
  • license header should start with /* instead of /** - this will fix problem with IntelliJ reporting it as a javadoc that is not attached to any class
  • checkstyle validation performance improvement (speedup of ~ 10%)
  • few minor formatting changes.
    Please upgrade the qulice and fix the new problems found. It would be a good idea to upgrade now that the codebase have just a few classes.

Wallet.java:205-213: Following transactions should be...

The puzzle 16-27c16652 from #16 has to be resolved:

// @todo #16:30min Following transactions should be ignored according
// to the whitepaper:
// a) If the transaction is negative and its signature is not valid,
// it is ignored;
// b) If the transaction makes the balance of the wallet negative,
// it is ignored;
// c) If the transaction is positive and it’s absent in the paying
// wallet (which exists at the node), it’s ignored; If the paying
// wallet doesn’t exist at the node, the transaction is ignored;

The puzzle was created by rultor on 12-Aug-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

RtTransaction.hashCode shouldn't directly delegate to String.hashCode

Current implementation of RtTransaction.hashCode directly delegate to this.transaction.hashCode, but this breaks the contract of Object that says that equals and hashCode should be coherent together.

In particular it means that a transaction and a plain string can have the same hash code, but calling equals on them will return false.

The solution is trivial: use Objects.hash that ensure this does not happen.

WalletsInTest.java:84-89: Ensure creating a new wallet in...

The puzzle 12-99ac50e5 from #12 has to be resolved:

// @todo #12:30min Ensure creating a new wallet in a path where a
// wallet with the same id throws an exception and does not
// overwrite the existing one. This could be done using by
// using a Random object with a similar seed in WalletsIn
// and creating a wallet twice for example. When it is done
// enable the test.

The puzzle was created by rultor on 08-Aug-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Wallet.java:200-202: Implement key method. This should...

The puzzle 54-605ff193 from #54 has to be resolved:

// @todo #54:30min Implement key method. This should return the
// public RSA key of the wallet owner in Base64. Also add a unit test
// to replace WalletTest.keyIsNotYetImplemented().

The puzzle was created by rultor on 11-Aug-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Wallet.java:131-134: Implement merge method. This should...

The puzzle 6-af7c6ffd from #6 has to be resolved:

// @todo #6:30min Implement merge method. This should merge this wallet
// with a copy of the same wallet. It should throw an error if a
// wallet is provided. Also add a unit test to replace
// WalletTest.mergeIsNotYetImplemented().

The puzzle was created by rultor on 04-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Introduce WalletMatcher

It will be useful for tests to have class WalletMatcher. It can be used as follows:

MatcherAssert.assertThat(
    new WalletsIn(this.path).create(),
    WalletMatcher.hasId(id)
);

CpTransaction.java:30-33: Implement the computation of...

The puzzle 54-c02fec87 from #54 has to be resolved:

* @todo #54:30min Implement the computation of the transaction string
* based on the white paper. The unit tests should also be updated to
* ensure it works as expected and test for
* returnSignatureForNegativeTransaction must be implemented.

The puzzle was created by rultor on 11-Aug-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

RtTransaction.java:53-55: Implement id() by parsing the...

The puzzle 15-4f67a35d from #15 has to be resolved:

// @todo #15:30min Implement id() by parsing the string representation
// of transaction according to the pattern, described in the white
// paper. Replace relevant test case with actual tests.

The puzzle was created by Tolegen Izbassar on 06-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "xcop"

On running maven clean install -Pqulice throw the following error on Windows:

Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (default) on project java-api: An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "xcop": CreateProcess error=2,
[ERROR] around Ant part ...... @ 18:50 in C:\zold\java-api\target\antrun\build-main.xml

For com.jcabi required to install xcop by gem and add to PATH variable.

RtTransaction.java:94-96: Implement details() by parsing...

The puzzle 15-ad2b4fa5 from #15 has to be resolved:

// @todo #15:30min Implement details() by parsing the string representation
// of transaction according to the pattern, described in the white
// paper. Replace relevant test case with actual tests.

The puzzle was created by Tolegen Izbassar on 06-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Creation of wallet

The Wallets interface has a method to create a new Wallet instance. In order to create Wallet we need header information:

  • wallet id
  • network name
  • protocol version
  • public RSA key.

I'm not sure, that the Wallets.create() should accept that information through parameters. Who should maintain the ids? From where we will receive it? Through the constructor of WalletsIn()?

WalletsIn.java:79-82: Read instance of the Wallet from...

The puzzle 4-aab61a84 from #4 has to be resolved:

// @todo #4:30min Read instance of the Wallet from file and put it
// to the result. Should be taken care of after Wallet interface will have
// necessary implementations. Cover with tests and remove irrelevant test
// case.

The puzzle was created by Tolegen Izbassar on 03-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Wallet

Let's implement Wallet:

public interface Wallet {
/**
* This wallet's ID: an unsigned 64-bit integer.
* @return This wallet's id
* @checkstyle MethodName (2 lines)
*/
long id();
/**
* Make a payment.
* @param amt Amount to pay in zents
* @param bnf Wallet ID of beneficiary
*/
void pay(long amt, char bnf);
/**
* Merge both {@code this} and {@code other}. Fails if they are not the
* same wallet, as identified by their {@link #id() id}.
* @param other Other wallet
* @return The merged wallet
*/
Wallet merge(Wallet other);
/**
* This wallet's ledger.
* @return This wallet's ledger
*/
Iterable<Transaction> ledger();
}

How to sign?

According to the white paper, we should sign each transaction with RSA. For that, we need an RSA private key. Where to get it? Will it be generated for each wallet?

Wallet.java:47-50: Merge method should update...

The puzzle 16-e32ec38b from #16 has to be resolved:

* @todo #16:30min Merge method should update transactions
* in wallet's file and return concrete implementation not a fake one.
* Beware that tests should be refactored to take care of file cleanup
* after each case that merges wallets.

The puzzle was created by rultor on 12-Aug-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

RtNetwork.java:63-67: Implement pull method. Pulling a...

The puzzle 5-dec07794 from #5 has to be resolved:

// @todo #5:30min Implement pull method. Pulling a wallet from the
// network should return all the wallets with that id in the
// network merged together. After the implementation
// NetworkTest.pullIsNotYetImplemented() have to be uncommented and
// test if pull method is behaving correctly.

The puzzle was created by Paulo Lobo on 19-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

WalletsIn.java:70-73: Return the new instance of the...

The puzzle 4-968ad704 from #4 has to be resolved:

// @todo #4:30min Return the new instance of the Wallet, that will
// be created in the path with all wallets. Should be taken care of
// after Wallet interface will have implementations. Cover with tests and
// remove irrelevant test case.

The puzzle was created by Tolegen Izbassar on 03-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Wallet.java:123-125: Implement pay method. This should...

The puzzle 6-f97f5c14 from #6 has to be resolved:

// @todo #6:30min Implement pay method. This should add a transaction
// to the wallet containing the correct details. Also add a unit test
// to replace WalletTest.payIsNotYetImplemented().

The puzzle was created by rultor on 04-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Skeleton

Let's create a skeleton and deploy it to Maven Central.

Wallet merging of copies

According to the whitepaper merging of two wallets is an operation of merging copies into a local one.
Merge algorithm first sorts the copies and then merges transactions from that copies.
Currently, sorting is done outside Wallet.merge() method. It is part of Remote.pull() method.
I propose to add an additional method to Wallet : Wallet merge(Copies copies) and remove explicit sorting from Remote.pull().
Similar to what we have in ruby version

RtTransaction.java:104-106: Implement signature by...

The puzzle 15-0d2d728d from #15 has to be resolved:

// @todo #15:30min Implement signature by parsing the string representation
// of transaction according to the pattern, described in the white
// paper. Replace relevant test case with actual tests.

The puzzle was created by Tolegen Izbassar on 06-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

RtNetwork.java:52-55: Implement scoring algorithm when...

The puzzle 5-c56bb757 from #5 has to be resolved:

// @todo #5:30min Implement scoring algorithm when paying taxes. Scoring
// algorithm must select the node with the highest score and with score
// >= 16. There are some tests for the scoring algorithm in NetworkTest:
// remove ignore tag from them after algorithm implementation.

The puzzle was created by Paulo Lobo on 19-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

RtTransaction.java:62-64: Implement time() by parsing the...

The puzzle 15-1e017e66 from #15 has to be resolved:

// @todo #15:30min Implement time() by parsing the string representation
// of transaction according to the pattern, described in the white
// paper. Replace relevant test case with actual tests.

The puzzle was created by Tolegen Izbassar on 06-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Copies.java:85-87: Compare the entire content of two...

The puzzle 56-e2c92447 from #56 has to be resolved:

* @todo #56:30min Compare the entire content of two wallets. In addition
* to id, compare RSA key and all transactions one by one. Entire content
* of each transaction should be compared.

The puzzle was created by Vatavuk on 14-Aug-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Wallet.java:123-126: Implement pay method. This should...

The puzzle 15-0b8da355 from #15 has to be resolved:

// @todo #15:30min Implement pay method. This should add a transaction
// to the wallet containing the correct details with the help of
// RtTransaction class. Also add a unit test to replace
// WalletTest.payIsNotYetImplemented().

The puzzle was created by Tolegen Izbassar on 06-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

WalletTest.java:43-46: CheckedScalar from 'cactoos' does...

The puzzle 33-65714492 from #33 has to be resolved:

* @todo #33:30min CheckedScalar from 'cactoos' does not wrap runtime
* exceptions for some reason. Once it's fixed (see yegor256/cactoos#933)
* un-ignore WalletTest.throwIoExceptionIfReadingIdFails and make sure
* it works.

The puzzle was created by George Aristy on 12-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Copies.java:35-41: The constructor of Copies should be...

The puzzle 41-44da2a34 from #41 has to be resolved:

* @todo #41:30min The constructor of Copies should be implemented
* to retrieve the Wallet with the provided id in the provided remotes and
* group them by equivalent wallet (i.e., equivalent content) along
* with their remotes as explained in the whitepaper. A unit test should be
* added to validate this behaviour. The unit test
* NetworkTest.pullIsNotYetImplemented() should also be removed and replaced
* with a real test.

The puzzle was created by Victor Noël on 23-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

RtTransaction.java:70-72: Implement amount() by parsing...

The puzzle 15-a01f2b41 from #15 has to be resolved:

// @todo #15:30min Implement amount() by parsing the string representation
// of transaction according to the pattern, described in the white
// paper. Replace relevant test case with actual tests.

The puzzle was created by Tolegen Izbassar on 06-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Network

Let's implement Network:

public interface Network extends Iterable<Remote> {
/**
* Push the wallet to the network. The network will select the
* remote node with the highest score (with a minimum of {@code 16}).
* @param wallet The wallet
*/
void push(Wallet wallet);
/**
* Pull a wallet from the network.
* @param id The wallet's {@link Wallet#id() id}
* @return The wallet
*/
Wallet pull(Long id);
}

How to connect to network?

It's not clear how to connect to Zold network. Is there some REST API that we should use? Or there is some master address, and we need to issue some commands?

Wallet.java:142-144: Implement ledger method. This should...

The puzzle 6-2cc9aa8f from #6 has to be resolved:

// @todo #6:30min Implement ledger method. This should return all
// the transactions in this copy of the wallet. Also add a unit test
// to replace WalletTest.ledgerIsNotYetImplemented().

The puzzle was created by rultor on 04-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

CopiesTest.java:37-41: Add more test scenarios to Copies....

The puzzle 56-02b4f5e6 from #56 has to be resolved:

* @todo #56:30min Add more test scenarios to Copies.
* Scenarios:
* remotes return empty list
* remotes return single element
* remotes return wallets with different content

The puzzle was created by Vatavuk on 06-Aug-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

RtTransaction.java:45-47: Check validity of the incoming...

The puzzle 15-b88242e3 from #15 has to be resolved:

* @todo #15:30min Check validity of the incoming string representation
* of transaction. It should comply the pattern described in the white
* paper. Cover with unit tests.

The puzzle was created by Tolegen Izbassar on 06-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

NetworkTest.java:38-41: Implement Remote interface....

The puzzle 5-38f68f69 from #5 has to be resolved:

* @todo #5:30min Implement Remote interface. Remote Interface must be
* implemented because Network depends on Remote behavior. Network.pull
* needs to search all remotes for some wallet id and merge all found
* wallets; Network.push must push a wallet to a remote based in remote.

The puzzle was created by Paulo Lobo on 19-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

RtTransaction.java:86-88: Implement bnf() by parsing the...

The puzzle 15-957c2199 from #15 has to be resolved:

// @todo #15:30min Implement bnf() by parsing the string representation
// of transaction according to the pattern, described in the white
// paper. Replace relevant test case with actual tests.

The puzzle was created by Tolegen Izbassar on 06-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Transaction.java:145-148: Too many parameters on Fake...

The puzzle 61-94b7f6ca from #61 has to be resolved:

* @todo #61:30min Too many parameters on Fake constructor.
* Transaction.Fake have too many parameters; think and implement a
* way of reducing this number. After this implementation correct
* all other Fake usages to receive the new paramater values.

The puzzle was created by rultor on 04-Dec-18.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

RtNetwork.java:32-35: We must figure out how to 'load'...

The puzzle 5-fd3c6d54 from #5 has to be resolved:

* @todo #5:30min We must figure out how to 'load' some network. Loading the
* network will be loading a local JSON file that contains data on all
* remote nodes that we know about; we must have a pre configured set of
* remote nodes built in too. See whitepaper for details.

The puzzle was created by Paulo Lobo on 19-Jul-18.

Estimate: 30 minutes,

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

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.