IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
259: Multihash-based repo r=koivunej a=ljedrz
We currently have an ad-hoc `Cid`-upgrading mechanism in place for the legacy `v0` version that is complicated and error-prone; when working on the `SubscriptionRegistry` I had to disable some of those upgrades, but some of them were still applied in the `Repo` (and necessary in order for the conformance tests to pass), making it hard to work on further functionalities like content discovery.
The solution I came up with is to introduce a `RepoCid` wrapper in order to make the keys in `Repo` objects operate on the associated `Multihash` instead of the whole `Cid`. Changing them to plain `Multihash`es wouldn't work, as we are still expected to return `Cid`s for the purposes of e.g. `Ipfs::local_refs` and I'm pretty sure some of the conformance tests still expect the full `Cid` to be available.
The only drawback is some extra `clone()`ing, but the improvement in code clarity and the unblocking of further changes is well worth it. This change also simplifies one of our conformance test patches (local refs).
~~I'm marking this PR as a draft in hopes that I can still come up with some solution to the extra cloning.~~ This is hard; I'm not able to do this at the moment, but this shouldn't be a blocker.
Co-authored-by: ljedrz <ljedrz@gmail.com>
256: some groundwork for peer/content discovery r=koivunej a=ljedrz
Some groundwork for peer and content discovery using `libp2p::kad`.
~~Very much a WIP with plenty of prototyping and wild `println!`s.~~
Cc https://github.com/rs-ipfs/rust-ipfs/issues/10
Co-authored-by: ljedrz <ljedrz@gmail.com>
257: ci: stop building pushes to master r=aphelionz a=koivunej
bors should only fast forward or reset the master to HEAD of staging at the end of each run, so if there is a credit system on GH we are just wasting those credits on each merged PR.
if nothing else, this should be more energy efficient :) if bors fast forwarded something the commit should have the status badge.
Co-authored-by: Joonas Koivunen <joonas@equilibrium.co>
bors should only fast forward or reset the master to HEAD of staging
at the end of each run, so if there is a credit system on GH we are just
wasting those credits on each merged PR.
255: update libp2p again r=koivunej a=ljedrz
Needed for our `substrate-ipfs` project, as `substrate` just updated it.
Co-authored-by: ljedrz <ljedrz@gmail.com>
254: Fix bitswap ready block wakeup r=koivunej a=koivunej
The previous version relied on block_on for the block reads, lets see if this still timeouts on `exchange_block`.
This changes the `queued_blocks` to be `UnboundedSender<(PeerId, Block)>` instead of `Arc<Mutex<Vec<(PeerId, Block)>>>`. An alternative would had been to store the waker but we concluded the channel would be more appropriate.
Co-authored-by: Joonas Koivunen <joonas@equilibrium.co>
Co-authored-by: Joonas Koivunen <joonas.koivunen@gmail.com>
253: update some dependencies r=koivunej a=ljedrz
We have been behind in terms of `cid` and `multihash` for a while now, but with the recent update of `libp2p` (as long as we want to follow it closely), those need to be updated too. The biggest obstacle to updating our dependencies is currently the pinned revision of `libipld` and while it'll take more work to adapt our code to its recent upstream version, that revision can easily be forked with updated dependencies, enabling other updates.
Co-authored-by: ljedrz <ljedrz@gmail.com>
250: Migrating http symlink creation to conformance/setup.sh + CI Update r=koivunej a=aphelionz
This PR removes the symlink from source control, and adds some lines to validate and create the symlink to `conformance/setup.sh`. It also updates CI to build the project _before_ trying to create the symlink, as per the warning in `setup.sh`
The reasoning behind this is for GitHub Pages + Jekyll, which will break upon encountering a symlink that doesn't resolve properly in the repo.
Co-authored-by: Mark Robert Henderson <henderson.mark@gmail.com>
252: introduce a local get_block_now functionality r=koivunej a=ljedrz
This allows us not to call the `async` counterpart (that spawns a potentially long-lasting `SubscriptionFuture`) when being asked for a `Cid` by other peers.
In addition, expand the `wantlist_cancellation` test a little bit - these changes don't affect it after all, but the extra checks are useful.
Co-authored-by: ljedrz <ljedrz@gmail.com>
251: Fix hanging interface-ipfs-core tests r=ljedrz a=koivunej
This should add the diagnostic, but not hang the builds. Lets see how lucky we get. This is following the test win/mac failures on #249 and #250.
In this PR:
- why-is-node-running triggered 1min after interface-ipfs-core tests complete (so visible only when stuck)
- ipfsd-ctl patched to always await for subprocesses (this seems healthy either way)
- tests ignored:
- miscellanious.stop for surely causing the hang
- add from invalid url for likely causing a hang (DNSWRAP)
Need to investigate further what is causing the hangs with the stop -- it seemed like a deadlock. Not sure what happens with the DNSWRAP; perhaps the invalid url is good enough, but our rejection causes it to be "forgotten" and as such it seems to linger as it's completion is never checked once we fail the url add.
Co-authored-by: Joonas Koivunen <joonas@equilibrium.co>
249: Fix full link blocks r=koivunej a=koivunej
Rather a big rewrite on the balanced tree builder. The failing test case showed that compression happened too eagerly. This meant adjusting the `<` to `<=` in the two `work <= self.branching_factor` conditions, and making the "compression" a loop.
After pondering this a while, I wrote the loop internals to be "inplace mutating" instead of "drain" and "insert", which moved complexity a bit around. Also refactored the N argument fn out.
Fixes#242.
Co-authored-by: Joonas Koivunen <joonas@equilibrium.co>
this included making the compression to loop on the lower level, making
the algorithm in place modifying instead of draining (and thus moving
yet to be processed links). added comments and asserts as well.
Co-authored-by: ljedrz <ljedrz@users.noreply.github.com>