Add chunk bulk upload API

Đang mở
#4,872 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 3 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
go
Lĩnh vực
api, backend

Hướng nghiên cứu

Read the existing POST /chunks handler and websocket upload protocol, then compare them with the linked BeeTurbo ChunksBulkUploadHandler.cs for the proposed request format. The issue does not name Bee files or tests; first locate the upload entry points and tests. Done means a new, non-retro-compatible endpoint accepts multiple chunks in one request and validates each chunk’s integrity.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

feature
Summary

Current http and websocket upload APIs are heavily suboptimized. A better API to improve upload speed is necessary.

Motivation

Current POST /chunks API and websocket protocol work in the same way, sending one chunk at time, and waiting ack from node.
All the time the network is always waiting for something, or to receive new chunk data, or confirmation that data has been received. The network line is always empty of data.

Instead, to have a continuous stream of chunks is a really better solution.

Implementation

I've implemented an alternative rest API into an experimental reverse proxy project that I've called "BeeTurbo". It is putted directly in front of bee.

api implementation: https://github.com/Etherna/bee-turbo/blob/3516cf9f0b67af3ae58308d5f7433048fdbff5aa/src/BeeTurbo/Handlers/ChunksBulkUploadHandler.cs

Basically, it receives a set of chunks with a single POST request. Payload is composed as continuous list of chunks, where each one is described as:

  • uint16 with chunk's size in byte
  • chunk's payload, of the given size
  • swarm hash, used only to check chunk's integrity
Drawbacks

The new api is not retro-compatible, a new endpoint has to be introduced

Ngôn ngữ chính
Go
Star
1.5k
Fork
390
Merge trung bình
3 ngày 2 giờ
Pull request đã merge (30 ngày)
17

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của ethersphere/bee

Tất cả issue của ethersphere/bee

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.