Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create design doc for "helia with trustless gateway HTTP support" #272

Closed
3 tasks done
Tracked by #255
SgtPooki opened this issue Sep 29, 2023 · 6 comments · Fixed by #300
Closed
3 tasks done
Tracked by #255

Create design doc for "helia with trustless gateway HTTP support" #272

SgtPooki opened this issue Sep 29, 2023 · 6 comments · Fixed by #300
Assignees
Labels
dif/expert Extensive knowledge (implications, ramifications) required effort/hours Estimated to take one or several hours kind/architecture Core architecture of project P0 Critical: Tackled by core team ASAP status/in-progress In progress

Comments

@SgtPooki
Copy link
Member

SgtPooki commented Sep 29, 2023

Tasks

@SgtPooki SgtPooki self-assigned this Sep 29, 2023
@SgtPooki SgtPooki added P0 Critical: Tackled by core team ASAP dif/expert Extensive knowledge (implications, ramifications) required effort/hours Estimated to take one or several hours kind/architecture Core architecture of project status/in-progress In progress labels Sep 29, 2023
@SgtPooki
Copy link
Member Author

SgtPooki commented Oct 3, 2023

Rough flowchart of getting a block using Helia as things currently stand:

flowchart TD
    %% getting a single block from helia
    A[Application] -->|get block| B[Helia module]
    B -->|get block| C[Helia.BlockStorage]
    C -->|get block| D[Helia.NetworkedStorage]
    D --> E{BlockStorage.has}
    E -->|have block| A
    E -->|No| F{Online & Bitswap}
    F -->|No| G[End]
    F -->|Yes| H{bitswap.WANT}
    H -->|get block| H
    H -->|have block| A
Loading

@SgtPooki
Copy link
Member Author

SgtPooki commented Oct 3, 2023

rough flowchart of what expected flow will be once #274 is done:

flowchart TD
    %% getting a single block from helia after https://github.com/ipfs/helia/issues/274
    A[Application] -->|get block| B[Helia module]
    B -->|get block| C[Helia.BlockStorage]
    C -->|get block| D[Helia.NetworkedStorage]
    D --> E{BlockStorage.has}
    E -->|have block| A
    E -->|No| F{Online}
    F -->|No| G[End]
    F -->|yes2| H{Use byteProviders}
    H -->|BitSwap| H1{bitswap.WANT}
    H1 -->|get block| H1
    I[any byteProvider returns success]
    H1 -->|have block| I
    H -->|OtherMethod| H2{Any Impl}
    H2 -->|have block| I
    H -->|TrustLessGateway| H3{dweb.link}
    H3 -->|have block| I
    I -->|have block| A
Loading

https://mermaid.live/edit#pako:eNp9klFv2jAQgP-KZalvNCEhQJeHSVBoQdroJJgqjfBgkguxSOzIvpSlgf8-kzQVMG1-ycX33XdnyxUNZQTUp3EqD2HCFJLVJBDErLs7sgNELnaEEW0-KZBtKsM9iZXMSAIpZ4TFCIokiLn2bXvHMSm2Vigzm-extmvG5loXoG136DXi0XqU5ykPGXIpNuT-_uvRNGrcRzJez2pzJqMihU1TMr6lHhvKGp9_lygV27Xs4y07-WAXgAep9hBd85MzT6bVpcpKmD416WmtS9gbtL7RZWIhj-SpehEpF_BR8fSZeF5PRbS53C1Bu0cyq35qoysRfij5xiNQbbdZTY05Lg8sN6BTbTlqE1uvo8WqhZzbI86cJjNfM1FeiYkCLJTQRBdhCFpvrhSXx5pfTvCCCajvgImMjN2tRkY7z_K0ncD9f_lKFRq_mXbPDOHASuPoVdEBtpa5p30r6f1LMv_7zmmHZqAyxiPzWKszFlAzYwYB9U0YQcyKFAMaiJNBWYFyWYqQ-qgK6NAij8wgE852imXUj1mqzW7OBPUr-pv6Tm9gfen1nb7X9dzhg-t2aEn9gTXwnN7Q6_bdgffQHfZPHfoupRE4dfGvOj53OP0BzmMOHg

@SgtPooki
Copy link
Member Author

SgtPooki commented Oct 3, 2023

@achingbrain could use a peek at this. i'm planning on making the change in networked-storage.ts since that's where the networking stuff happens..

I was also thinking of wrapping bitswap with a byteProvider implementation, but maybe that can wait for later?

@SgtPooki
Copy link
Member Author

The rest of the work/discussion here is being handled by #274

@BigLep
Copy link
Contributor

BigLep commented Oct 17, 2023

@SgtPooki : can we get this issue closed? I assume just need to get this diagram checked into the Helia repo?

@SgtPooki
Copy link
Member Author

@BigLep yea, it's mostly waiting on #274.. I can move any tasks left from this into that issue or #287

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dif/expert Extensive knowledge (implications, ramifications) required effort/hours Estimated to take one or several hours kind/architecture Core architecture of project P0 Critical: Tackled by core team ASAP status/in-progress In progress
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

2 participants