Skip to content

Latest commit

 

History

History
730 lines (575 loc) · 50.3 KB

CHANGELOG.md

File metadata and controls

730 lines (575 loc) · 50.3 KB

Changelog

v1.10.0

BUGFIXES

v1.9.0

BUGFIXES

  • #1423 fix: no such object error code
  • #1429 fix: visibilityInt value check

FEATURES

  • #1428 perf: receive done

v1.8.0

BUGFIXES

  • #1404 fix: use exponential backoff for task retry policy
  • #1406 fix: change replicate failure error code to 404 when object is not found
  • #1407 fix: refine error code for bucket migration
  • #1409 fix: avoid users to select network in universal endpoint page
  • #1412 fix: bs bucket migrate event bug
  • #1414 fix: metric check sp
  • #1415 fix: check sp health retry
  • #1422 fix: gvg staking storage size

FEATURES

  • #1405 feat: bs add bucket status field
  • #1408 feat: add detailed logs for special customized logs
  • #1416 perf: logic

DOCS

  • #1402 docs: move SP cmd/module/api docs docs.bnbchain.org to sp repo
  • #1417 fix:readme

v1.7.0

BUGFIXES

  • #1394 fix: pick new gvg when retry failed replicate piece task
  • #1391 fix: check if it is AgentUploadTask
  • #1390 fix: delegate upload param check
  • #1389 fix: delegate upload param check
  • #1387 fix: upgrade deps for fixing vulnerabilities
  • #1386 fix: check if BucketExtraInfo is nil
  • #1384 fix: fix db override

FEATURES

  • #1392 feat: provide recommended vgf

v1.6.0

BUGFIXES

  • #1375 fix: fix GC issue
  • #1379 perf: replicate piece
  • #1378 fix: deletion on checksum not fully performed and fail to override duplicate checksum

FEATURES

  • #1354 feat: simplify off-chain-auth
  • #1353 feat: Primary SP as the upload agent
  • #1351 feat: sp monthly free quota

v1.5.0

BUGFIXES

  • #1344 fix: exclude timestamp from recovery piece key to avoid duplicate requests
  • #1342 fix: Upload_Done task loaded from DB does not have GVG info
  • #1336 fix: 500 error code when bucket is deleted
  • #1334 fix: gc object retry due to deleted bucket

FEATURES

  • #1337 feat: atomic object update
  • #1345 feat: update gvg save logic
  • #1340 feat: add more info in status api

v1.4.0

BUGFIXES

  • #1347 fix: init the bucket traffic when NotifyPreMigrateBucketAndDeductQuota
  • #1343 fix: correct the bucket quota formula when pre-check in bucket migration
  • #1341 fix: let bucket migration be able to start without a pre-read of bucket content
  • #1333 fix: Not allow to upload piece/object for a fully-uploaded object
  • #1314 fix: special object download issue
  • #1315 fix: blocksyncer sequential processing
  • #1316 fix: fix complete swap in

FEATURES

  • #1250 feat: bucket migration state improvement
  • #1298 feat: invalid object name

v1.3.1

This release contains 1 bugfix.

BUGFIXES

  • #1333 fix: Not allow to upload piece/object for a fully-uploaded object

v1.3.0

This release contains 2 bugfix and 2 feature.

BUGFIXES

  • #1304 fix: fix sp unhealthy bug
  • #1311 fix: fix health check

FEATURES

  • #1279 feat: re-implementation of sp exit
  • #1312 perf: blocksyncer sql commit

v1.2.5

This release contains 1 bugfixes.

BUGFIXES

  • #1305 fix: secondary SP might need to wait object meta due to latency

v1.2.4

This release contains 2 bugfixes.

BUGFIXES

  • #1230 fix: fix gvg not exist
  • #1299 fix: fix: unhealthy sps clean bug

v1.2.3

This release contains 1 bugfix and 1 feature.

BUGFIXES

  • #1289 fix: replicate failed sp idx not included in local task

FEATURES

  • #1291 feat: add more log

v1.2.2

BUGFIXES

  • #1284 fix: remove tags field when creating object/group/bucket

v1.2.1

BUGFIXES

  • #1282 fix: delete prefix tree slow query issue

v1.2.0

FEATURES

  • #1263 feat: add Tags in object/bucket/group
  • #1260 feat: add task retry scheduler
  • #1258 add deposit and delete operation to GVG in signer and fix a few issue
  • #1190 gc for zombie piece & metaTask & bucket migration

BUGFIXES

  • #1257 fix: httpcode error
  • #1259 fix: refine error message when object status is unexpected
  • #1256 fix: fix the slow xml marshaling when returning a large list of objects
  • #1266 fix: queried gvg might be nil
  • #1270 fix: list object by bucket name bug
  • #1277 fix: group members api incorrect tags/source_type/extra response

V1.1.0

FEATURES

  • #1240 feat: add a DataMigrationRecord table to save the process record for data migration tasks
  • #1218 feat: add sp health for pick sp
  • #1237 feat: signer module adds metrics for each rpc interface
  • #1227 feat: add reject bucket migration
  • #1224 feat: add gnfd cmd to query sq incomes
  • #1223 feat: update storage size for bucket apis
  • #1118 feat: Quota improvement for bucket migration
  • #1201 feat: sp adds http probe to improve service stability
  • #1207 feat: update recover object command for k8s job
  • #1197 feat: add golang runtime metrics, process metrics and std lib db metrics
  • #1167 feat: add error code in http metrics to help locate problems

BUGFIXES

  • #1245 fix: fix sp healthy checker dead lock bug
  • #1228 fix: primary sp should check received ssp signature before sealing
  • #1229 fix: sp should resume picking VGF regardless of RPC error
  • #1198 fix: refine the error msg for ErrInvalidExpiryDate header and parameter
  • #1222 fix: bucket size write DB failed
  • #1221 fix: gateway module remove dependency on spdb
  • #1220 fix: fix metrics and pprof disable bug
  • #1213 fix: update expiration new logic UT
  • #1215 fix: delete aliyunfs code
  • #1170 fix: skip error when object is deleted
  • #1212 fix: return 400 when getting invalid header for getNonceAPI
  • #1203 fix: error code when invalid signature
  • #1184 fix: fix resource leak
  • #1204 fix: remove the order by clause for discontinuing function
  • #1199 fix: fix time.Since called in defer, it should be used in defer func
  • #1183 fix: adjust sp command description
  • #1180 fix: replace record not found with empty array

v1.0.5

This release contains 2 bugfix.

BUGFIXES

  • #1229 fix: sp should resume picking VGF regardless of RPC error
  • #1239 fix: add timeout for RPC calls to Secondary SP

v1.0.4

This release contains 1 bugfix.

BUGFIXES

  • #1231 fix: fix: add config sp blacklist

v1.0.3

This release contains 1 bugfix.

BUGFIXES

  • #1214 fix: abort replication task if an object sealed

v1.0.2

This release contains 2 bugfixes and 1 feature.

FEATURES

  • #1200 feat: add index to update at

BUGFIXES

  • #1189 fix: add challenge v2 api to avoid piece hash http header too large
  • #1195 fix:bs job connect db bug

v1.0.1

FEATURES

  • #1181 feat: api rate limiter refactor
  • #1188 feat:blocksyncer fix data command

BUGFIXES

  • #1186 fix:batch delete group member
  • #1187 fix:payment refundable update

v1.0.0

This is the first official version for the main-net deployment.

v0.2.6-hf.2

BUGFIX

  • #1171 fix: fix init the NotAvailableSpIdx

v0.2.6-hf.1

BUGFIX

  • #1166 fix: delete group fix job
  • #1160 fix: fix replication failed SP err recording issue
  • #1159 fix: list objects by gvg sql bug
  • #1165 fix: verify permission 500 code and update UT
  • #1155 fix: fix manager duplicate entry when inserting upload progress
  • #1158 fix: add xml response for rate limit error
  • #1156 fix: recovery object status should be sealed
  • #1154 fix: add ut for universal endpoint

v0.2.6

TEST

  • #1157 test: add metadata api UT

v0.2.6-alpha.2

BUGFIX

  • #1151 fix: update new logic of metadata apis

v0.2.6-alpha.1

FEATURES

  • #1109 feat: add migrate piece auth check
  • #1131 feat: limit creating object and migrating bucket approval

BUGFIX

  • #1130 fix: defer returning err until all goroutines are done
  • #1134 fix: readme
  • #1139 fix: refactoring code for getObject and Universal apis
  • #1140 fix: add replicate check permission
  • #1142 fix: resumable queue bug
  • #1145 fix: policy statement is empty
  • #1146 fix: fix integrity hash check
  • #1147 fix: fix uploader server read closed channel

TEST

  • #1143 test: add blocksyncer ut case

v0.2.5

BUGFIX

  • #1135 fix: effect allow issue

v0.2.5-alpha.3

FEATURES

  • #1129 feat: add back metadata go routine listener
  • #1128 feat: support expire time check of SP task info

BUGFIX

  • #1092 fix: support reimburse quota if download consumed extra quota
  • #1127 fix:bs groups unique index
  • #1125 fix: expiration time for statement

TEST

  • #1126 test: modular/executor pkg adds UTs

v0.2.5-alpha.2

FEATURES

  • #1112 feat: support GfSpGetSPMigrateBucketNumber

BUGFIX

  • #1121 fix: fix tls MinVersion to 1.2
  • #1119 fix: stop all replicate jobs and done replicate job by context
  • #1117 fix: include private cause bucket not found

TEST

  • #1115 test: modular/gater pkg adds UTs part II

v0.2.5-alpha.1

FEATURES

  • #1029 feat: use aliyun oss sdk to visit oss
  • #1042 feat: add go routine metrics
  • #1057 feat: list object policies and add number of group members
  • #1067 feat: Docker image distroless update
  • #1111 feat: only persist the init off-chain-auth record when first updating
  • #1103 feat: list groups by ids
  • #1088 feat: recover object list
  • #1077 feat: support ListUserPaymentAccounts & ListPaymentAccountStreams

BUGFIX

  • #1039 fix: remove funding key in singer module
  • #1053 fix: add more metrics log for PickUpTask
  • #1054 fix: fix quota db to support get quota by month
  • #1062 fix: add fingerprint to approval key
  • #1071 fix: cancel migrate bucket bug
  • #1074 fix: set correct Content-Disposition when downloading an object
  • #1104 fix: refactor quota table
  • #1107 fix: api rate limiter path sequence
  • #1106 fix: sec issue about conversion alerts
  • #1089 fix: sec issue about conversion alerts
  • #1098 fix: self sp id retrieval
  • #1097 fix: fix group ExpirationTime bug
  • #1093 fix: verify permission if expiration time = 0 bug
  • #1087 fix: upgrade libp2p and cosmos-sdk version to solve security issues
  • #1084 fix: resumable upload support 64g file
  • #776 fix: code security check
  • #1078 fix: add more resource manager log

TEST

  • #1032 test: modular/approver pkg adds UTs
  • #1035 test: metadata bsdb UT
  • #1040 test: add cmd ut
  • #1046 test: add downloader ut
  • #1068 test: gfspapp pkg adds UTs part II
  • #1073 test: gfspconfig and gfsppieceop pkg add UTs
  • #1108 test: modular/gater pkg adds UTs
  • #1095 test: modular/uploader pkg adds UTs
  • #1096 test: base/gfsprcmgr pkg adds UTs
  • #1090 test: base/gfspclient pkg adds UTs
  • #1082 test: base/types directory adds UTs
  • #1076 test: gfsptqueue and gfspvgmgr pkg add UTs
  • #1060 test: add receiver ut
  • #1086 test: add blocksyncer e2e test

v0.2.4-alpha.9

FEATURES

  • #989 feat: impl group apis and fix verify permission bug
  • #1008 feat: change auth api response from json to xml
  • #1010 feat:blocksyncer add realtime mode
  • #1015 feat: retrieve groups where the user is the owner
  • #1012 feat: error handle updates to provide useful messages
  • #1025 feat: change json response body to xml

BUGFIX

  • #999 fix: fix bug for metadata crash
  • #1000 fix: fix occasional compile error
  • #1006 fix: rename api name and replace post to get
  • #1014 fix: "failed to basic check approval msg"'s bug
  • #1016 fix:blocksyncer delete group bug
  • #996 fix: db update bucket traffic by transaction
  • #955 fix: fix src gvg is overwritten
  • #1018 fix: empty bucket when bucket migrate

TEST

  • #1001 test: sp db pkg adds unit test
  • #912 ci: add coverage report for tests
  • #1007 test: sp db pkg adds unit test part II
  • #1009 test: core pkg generates mock files
  • #1019test: gfspapp pkg adds UTs

v0.2.4-alpha.1

FEATURES

  • #857 feat: validate virtual group families' qualification
  • #985 feat:time Ticker
  • #981 feat: add tx confirm func and create virtual group retry
  • #968 feat: bucket migrate check when load from db

REFACTOR

  • #983 refine: refactor bucket migrate code
  • #953 Refactor manager that dispatch task model
  • #976 chore: refine migrate piece workflow
  • #960 docs: polish sp docs to the lastest version

BUGFIX

  • #908 fix: auth refactoring for security review
  • #987 fix: ignore duplicate entry when create bucket traffic
  • #973 fix: add missing path for pprof server
  • #966 fix: refine migrate gvg task workflow
  • #965 fix: repeated error xml msg
  • #963 fix: only metadata and blocksyncer need to load bsdb
  • #955 fix: check sp and bucket status when putting object
  • #935 fix: empty bucket when bucket migrate
  • #927 fix: filter complete migration buckets

TEST

  • #982 test: piece store pkg storage dir adds unit test
  • #977 test: piece store pkg adds unit test
  • #967 test: package util adds unit test

0.2.3-alpha.11

FEATURES

  • #867 feat: impl ListObjectsByGVGAndBucketForGC and object details
  • #888 feat: metadata and block syncer monitor
  • #890 feat: add generate gvg sp policy
  • #851 feat: support query sp

REFACTOR

  • #860 refactor: update quota consumption method

BUGFIX

  • #848 fix: fix recover command
  • #876 fix: GVGPickFilter CheckGVG func's paramter
  • #893 fix:blocksyncer object map id
  • #868 fix: fix aliyun credential expiration issue
  • #894 feat: revert grpc keepalive params
  • #897 fix: private universal endpoint special suffix handle
  • #898 fix:blocksyncer monitor

0.2.3-alpha.7

FEATURES

  • #824 feat: support sp exit and bucket migrate
  • #856 feat: update local virtual group event
  • #853 feat: update greenfield-go-sdk e2e version
  • #852 ci: fix docker-ci.yml to push develop
  • #865 feat: add bucket migrate & sp exit query cli

BUGFIX

  • #834 fix: remove v2 Authorization
  • #832 fix: add checking logic for sig length and public length
  • #839 fix: blocksyncer panic
  • #847 fix: block syncer copy object
  • #850 fix: handle concurrent spdb table creation
  • #814 fix: verify group permission
  • #858 fix: resumable upload maxpayload size bugs
  • #863 fix: optimize piece migration logic to avoid oom

v0.2.3-alpha.2

FEATURES

  • #664 feat: simulate discontinue transaction before broadcast
  • #643 feat: customize http client using connection pool
  • #681 feat: implement aliyun oss storage
  • #706 feat: verify object permission by meta service
  • #699 feat: SP database sharding
  • #795 feat: basic workflow adaptation in sp exit

REFACTOR

  • #709 refactor: manager dispatch task
  • #800 refactor: async report task

BUGFIX

  • #672 fix: fix data recovery
  • #690 fix: re-enable the off chain auth api and add related ut
  • #810 fix: fix aliyunfs by fetching credentials with AliCloud SDK
  • #808 fix: fix authenticator
  • #817 fix: resumable upload max payload size

v0.2.3-alpha.1

FEATURES

  • #638 feat: support data recovery
  • #660 feat: add download cache
  • #480 feat: support resumable upload

REFACTOR

  • #649 docs: sp docs add flowchart

BUGFIX

  • #648 fix: request cannot be nil in latestBlockHeight

v0.2.2-alpha.1

FEATURES

  • #502 feat: support b2 store
  • #512 feat: universal endpoint for private object
  • #517 feat:group add extra field
  • #524 feat: query storage params by timestamp
  • #525 feat: reject unseal object after upload or replicate fail
  • #528 feat: support loading tasks
  • #530 feat: add debug command
  • #533 feat: return repeated approval task
  • #536 feat:group add extra field
  • #542 feat: change get block height by ws protocol

REFACTOR

  • #486 refactor: off chain auth
  • #493 fix: refine gc object workflow
  • #495 perf: perf get object workflow
  • #503 fix: refine sp db update interface
  • #515 feat: refine get challenge info workflow
  • #546 docs: add sp infra deployment docs
  • #557 fix: refine error code in universal endpoint and auto-close the walle…

BUGFIX

  • #487 fix: init challenge task add storage params
  • #499 fix: permission api
  • #509 fix:blocksyncer oom

v0.2.1-alpha.1

FEATURES

  • #444 feat: refactor v0.2.1 query cli
  • #446 feat: add p2p ant address config
  • #449 feat: metadata service and universal endpoint refactor v0.2.1
  • #450 refactor:blocksyncer
  • #468 feat: add error for cal nil model
  • #471 refactor: update listobjects & blocksyncer modules
  • #473 refactor: update stop serving module

BUGFIX

  • #431 fix: data query issues caused by character set replacement
  • #439 fix:blocksyncer oom
  • #457 fix: fix listobjects sql err
  • #462 fix: base app rcmgr span panic
  • #464 fix: task queue gc delay when call has method

v0.2.0

FEATURES

  • #358 feat: sp services add pprof
  • #379 feat:block syncer add read concurrency support
  • #383 feat: add universal endpoint view option
  • #389 feat: signer async send sealObject tx
  • #398 feat: localup shell adds generate sp.info and db.info function
  • #401 feat: add dual db warm up support for blocksyncer
  • #402 feat: bsdb switch
  • #404 feat: list objects pagination & folder path
  • #406 feat: adapt greenfield v0.47
  • #408 feat: add gc worker
  • #410 feat: support full-memory replicate task
  • #411 feat:add upload download add bandwidth limit
  • #412 feat: add get object meta and get bucket meta apis

BUGFIX

  • #355 fix: universal endpoint spaces
  • #360 fix: sql parenthesis handling
  • #378 fix: support authv2 bucket-quota api
  • #413 fix: fix nil pointer and update db config

v0.1.2

FEATURES

  • #308 feat: adds seal object metrics and refine some codes
  • #313 feat: verify permission api
  • #314 feat: support path-style api and add query upload progress api
  • #318 feat: update schema and order for list deleted objects
  • #319 feat: implement off-chain-auth solution
  • #320 chore: polish tests and docs
  • #329 feat: update greenfield to the latest version
  • #338 feat: block sycner add txhash when export events & juno version update
  • #340 feat: update metadata block syncer schema and add ListExpiredBucketsBySp
  • #349 fix: keep retrying when any blocksycner event handles failure

v0.1.1

FEATURES

  • #274 feat: update stream record column names
  • #275 refactor: tasknode streaming process reduces memory usage
  • #279 feat: grpc client adds retry function
  • #292 feat: add table recreate func & block height metric for block sycner
  • #295 feat: support https protocol
  • #296 chore: change sqldb default config
  • #299 feat: add nat manager for p2p
  • #304 feat: support dns for p2p node
  • #325 feat: add universal endpoint
  • #333 fix: use EIP-4361 message template for off-chain-auth
  • #339 fix: permit anonymous users to access public object
  • #347 fix: add spdb and piece store metrics for downloader

BUGFIX

  • #277 fix: rcmgr leak for downloader service
  • #278 fix: uploader panic under db access error
  • #279 chore: change default rcmgr limit to no infinite
  • #286 fix: fix challenge memory is inaccurate
  • #288 fix: fix auth type v2 query object bug
  • #306 fix: fix multi update map bug and polish db error
  • #337 fix: permit anonymous users to access public objec

v0.1.0

BUGFIX

  • #258 fix put object verify permission bug
  • #264 fix: fix payment apis nil pointer error
  • #265 fix: fix sa iam type to access s3
  • #268 feat: update buckets/objects order
  • #270 feat: update buckets/objects order
  • #272 fix: upgrade juno version for a property length fix

BUILD

  • #259 ci: fix release.yml uncorrect env var name
  • #263 feat: add e2e test to workflow

v0.0.5

FEATURES

  • #211 feat: sp services add metrics
  • #221 feat: implement p2p protocol and rpc service
  • #232 chore: refine gRPC error code
  • #235 feat: implement metadata payment apis
  • #244 feat: update the juno version
  • #246 feat: resource manager

BUILD

  • #231 ci: add gosec checker

v0.0.4

FEATURES

  • #202 feat: update get bucket apis
  • #205 fix: blocksyncer adapt event param to chain side and payment module added
  • #206 feat: support query quota and list read record
  • #215 fix: potential attack risks in on-chain storage module

IMPROVEMENT

  • #188 refactor: refactor metadata service
  • #196 docs: add sp docs
  • #197 refactor: rename stonenode, syncer to tasknode, recevier
  • #200 docs: refining readme
  • #208 docs: add block syncer config
  • #209 fix: block syncer db response style

BUGFIX

  • #189 fix: fix approval expired height bug
  • #212 fix: authv2 workflow
  • #216 fix: metadata buckets api

BUILD

  • #179 ci: add branch naming rules
  • #198 build: replace go1.19 with go1.18

v0.0.3

FEATURES

  • #169 feat: piece store adds minio storage type
  • #172 feat: implement manager module
  • #173 feat: add check billing

IMPROVEMENT

  • #154 feat: syncer opt with chain data struct
  • #156 refactor: implement sp db, remove meta db and job db
  • #157 refactor: polish gateway module
  • #162 feat: add command for devops and config log
  • #165 feat: improve sync piece efficiency
  • #171 feat: add localup script

v0.0.2

This release includes following features:

  1. Implement the connection with the greenfield chain, and the upload and download of payload, including basic permission verification.
  2. Implement the signer service for storage providers to sign the on-chain transactions.
  3. Implement the communication of HTTP between SPs instead of gRPC.
  • #131 feat: add chain client to sp
  • #119 feat: implement signer service
  • #128 feat: stone node sends piece data to gateway
  • #127 feat: implement gateway challenge workflow
  • #133 fix: upgrade greenfield version to fix the signing bug
  • #130 fix: use env var to get bucket url

v0.0.1

IMPROVEMENT

  • #65 feat: gateway add verify signature
  • #43 feat(uploader): add getAuth interface
  • #68 refactor: add jobdb v2 interface, objectID as primary key
  • #70 feat: change index from create object hash to object id
  • #73 feat(metadb): add sql metadb
  • #82 feat(stone_node): supports sending data to different storage provider
  • #66 fix: adjust the dispatching strategy of replica and inline data into storage provider
  • #69 fix: use multi-dimensional array to send piece data and piece hash
  • #101 fix: remove tokens from config and use env vars to load tokens
  • #83 chore(sql): polish sql workflow
  • #87 chore: add setup-test-env tool

BUILD

  • #74 ci: add docker release pipe
  • #67 ci: add commit lint, code lint and unit test ci files
  • #85 chore: add pull request template
  • #105 fix: add release action

v0.0.1-alpha

This release includes features, mainly:

  1. Implement the upload and download of payload data and the challenge handler api of piece data;
  2. Implement the main architecture of greenfield storage provider:
    2.1 gateway: the entry point of each sp, parses requests from the client and dispatches them to special service;
    2.2 uploader: receives the object's payload data, splits it into segments, and stores them in piece store;
    2.3 downloader: handles the user's downloading request and gets object data from the piece store;
    2.4 stonehub: works as state machine to handle all background jobs, each job includes several tasks;
    2.5 stonenode: works as the execute unit, it watches the stonehub tasks(the smallest unit of a job) and executes them;
    2.6 syncer: receives data pieces from primary sp and stores them in the piece store when sp works as a secondary sp;
  3. Implement one-click deployment and one-click running test, which is convenient for developers and testers to experience the gnfd-sp.
  • #7 feat(gateway/uploader): add gateway and uploader skeleton
  • #16 Add secondary syncer service
  • #17 feat: implement of upload payload in stone hub side
  • #29 fix: ston node goroutine model
  • #38 feat: implement the challenge service
  • #9 add service lifecycle module
  • #2 add piecestore module
  • #18 feat: add job meta orm
  • #60 test: add run cases