diff --git a/.gitbook/assets/200.webp b/.gitbook/assets/200.webp new file mode 100644 index 00000000..b978dd0a Binary files /dev/null and b/.gitbook/assets/200.webp differ diff --git a/.gitbook/assets/Check-Debug-Mode.png b/.gitbook/assets/Check-Debug-Mode.png new file mode 100644 index 00000000..0aea6d94 Binary files /dev/null and b/.gitbook/assets/Check-Debug-Mode.png differ diff --git a/.gitbook/assets/Click-Settings.png b/.gitbook/assets/Click-Settings.png new file mode 100644 index 00000000..3ad7c735 Binary files /dev/null and b/.gitbook/assets/Click-Settings.png differ diff --git a/.gitbook/assets/DataNFT&Datatokens.png b/.gitbook/assets/DataNFT&Datatokens.png new file mode 100644 index 00000000..b33f6cff Binary files /dev/null and b/.gitbook/assets/DataNFT&Datatokens.png differ diff --git a/.gitbook/assets/Diagrams_Retrieve_file_flow.png b/.gitbook/assets/Diagrams_Retrieve_file_flow.png new file mode 100644 index 00000000..99350578 Binary files /dev/null and b/.gitbook/assets/Diagrams_Retrieve_file_flow.png differ diff --git a/.gitbook/assets/Diagrams_Upload_file_flow.png b/.gitbook/assets/Diagrams_Upload_file_flow.png new file mode 100644 index 00000000..e8a03661 Binary files /dev/null and b/.gitbook/assets/Diagrams_Upload_file_flow.png differ diff --git a/.gitbook/assets/Raw-URL.png b/.gitbook/assets/Raw-URL.png new file mode 100644 index 00000000..f2713090 Binary files /dev/null and b/.gitbook/assets/Raw-URL.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-15 at 15.52.29.png b/.gitbook/assets/Screenshot 2023-06-15 at 15.52.29.png new file mode 100644 index 00000000..7da50512 Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-15 at 15.52.29.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-15 at 15.54.21.png b/.gitbook/assets/Screenshot 2023-06-15 at 15.54.21.png new file mode 100644 index 00000000..a92499ee Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-15 at 15.54.21.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-15 at 15.55.16.png b/.gitbook/assets/Screenshot 2023-06-15 at 15.55.16.png new file mode 100644 index 00000000..aa1dac52 Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-15 at 15.55.16.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-15 at 15.56.34.png b/.gitbook/assets/Screenshot 2023-06-15 at 15.56.34.png new file mode 100644 index 00000000..2b937b34 Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-15 at 15.56.34.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-15 at 15.58.29.png b/.gitbook/assets/Screenshot 2023-06-15 at 15.58.29.png new file mode 100644 index 00000000..21fbda19 Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-15 at 15.58.29.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-15 at 16.08.42.png b/.gitbook/assets/Screenshot 2023-06-15 at 16.08.42.png new file mode 100644 index 00000000..981af7a3 Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-15 at 16.08.42.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-15 at 16.12.10.png b/.gitbook/assets/Screenshot 2023-06-15 at 16.12.10.png new file mode 100644 index 00000000..e378dd55 Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-15 at 16.12.10.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-15 at 16.26.56.png b/.gitbook/assets/Screenshot 2023-06-15 at 16.26.56.png new file mode 100644 index 00000000..3d094c1c Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-15 at 16.26.56.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-16 at 07.50.27.png b/.gitbook/assets/Screenshot 2023-06-16 at 07.50.27.png new file mode 100644 index 00000000..e42698b7 Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-16 at 07.50.27.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-16 at 07.51.14.png b/.gitbook/assets/Screenshot 2023-06-16 at 07.51.14.png new file mode 100644 index 00000000..6feb1f77 Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-16 at 07.51.14.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-16 at 07.54.29.png b/.gitbook/assets/Screenshot 2023-06-16 at 07.54.29.png new file mode 100644 index 00000000..fbbeb05a Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-16 at 07.54.29.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-16 at 07.56.01.png b/.gitbook/assets/Screenshot 2023-06-16 at 07.56.01.png new file mode 100644 index 00000000..7c7b728c Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-16 at 07.56.01.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-16 at 07.58.20.png b/.gitbook/assets/Screenshot 2023-06-16 at 07.58.20.png new file mode 100644 index 00000000..6ba9d12e Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-16 at 07.58.20.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-16 at 07.59.38.png b/.gitbook/assets/Screenshot 2023-06-16 at 07.59.38.png new file mode 100644 index 00000000..f2215469 Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-16 at 07.59.38.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-16 at 08.02.25.png b/.gitbook/assets/Screenshot 2023-06-16 at 08.02.25.png new file mode 100644 index 00000000..bbc86bb3 Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-16 at 08.02.25.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-16 at 08.05.41.png b/.gitbook/assets/Screenshot 2023-06-16 at 08.05.41.png new file mode 100644 index 00000000..39af555d Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-16 at 08.05.41.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-16 at 08.08.12.png b/.gitbook/assets/Screenshot 2023-06-16 at 08.08.12.png new file mode 100644 index 00000000..b2545bba Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-16 at 08.08.12.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-16 at 08.15.45.png b/.gitbook/assets/Screenshot 2023-06-16 at 08.15.45.png new file mode 100644 index 00000000..7d71185e Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-16 at 08.15.45.png differ diff --git a/.gitbook/assets/Screenshot 2023-06-16 at 08.16.46.png b/.gitbook/assets/Screenshot 2023-06-16 at 08.16.46.png new file mode 100644 index 00000000..1768146f Binary files /dev/null and b/.gitbook/assets/Screenshot 2023-06-16 at 08.16.46.png differ diff --git a/.gitbook/assets/Scroll-DDO-Info.png b/.gitbook/assets/Scroll-DDO-Info.png new file mode 100644 index 00000000..71333930 Binary files /dev/null and b/.gitbook/assets/Scroll-DDO-Info.png differ diff --git a/.gitbook/assets/Set-a-price-algo.png b/.gitbook/assets/Set-a-price-algo.png new file mode 100644 index 00000000..540af226 Binary files /dev/null and b/.gitbook/assets/Set-a-price-algo.png differ diff --git a/.gitbook/assets/Sign-transactions.png b/.gitbook/assets/Sign-transactions.png new file mode 100644 index 00000000..348ccf43 Binary files /dev/null and b/.gitbook/assets/Sign-transactions.png differ diff --git a/.gitbook/assets/Submit-compute-settings.png b/.gitbook/assets/Submit-compute-settings.png new file mode 100644 index 00000000..3e424eaa Binary files /dev/null and b/.gitbook/assets/Submit-compute-settings.png differ diff --git a/.gitbook/assets/TicketingMobileApp.png b/.gitbook/assets/TicketingMobileApp.png new file mode 100644 index 00000000..41a949c1 Binary files /dev/null and b/.gitbook/assets/TicketingMobileApp.png differ diff --git a/.gitbook/assets/algo-asset.png b/.gitbook/assets/algo-asset.png new file mode 100644 index 00000000..8dcb5aad Binary files /dev/null and b/.gitbook/assets/algo-asset.png differ diff --git a/.gitbook/assets/algorithm-privacy.png b/.gitbook/assets/algorithm-privacy.png new file mode 100644 index 00000000..54069c2a Binary files /dev/null and b/.gitbook/assets/algorithm-privacy.png differ diff --git a/.gitbook/assets/ambassadors.png b/.gitbook/assets/ambassadors.png new file mode 100644 index 00000000..b7c0c5ec Binary files /dev/null and b/.gitbook/assets/ambassadors.png differ diff --git a/.gitbook/assets/anchorman-teamwork.gif b/.gitbook/assets/anchorman-teamwork.gif new file mode 100644 index 00000000..19ec6d2c Binary files /dev/null and b/.gitbook/assets/anchorman-teamwork.gif differ diff --git a/.gitbook/assets/aquarius.png b/.gitbook/assets/aquarius.png new file mode 100644 index 00000000..e228c365 Binary files /dev/null and b/.gitbook/assets/aquarius.png differ diff --git a/.gitbook/assets/aquarius_deployment.png b/.gitbook/assets/aquarius_deployment.png new file mode 100644 index 00000000..c03b0415 Binary files /dev/null and b/.gitbook/assets/aquarius_deployment.png differ diff --git a/.gitbook/assets/architecture_overview.png b/.gitbook/assets/architecture_overview.png new file mode 100644 index 00000000..fa75be2b Binary files /dev/null and b/.gitbook/assets/architecture_overview.png differ diff --git a/.gitbook/assets/arweave-1.png b/.gitbook/assets/arweave-1.png new file mode 100644 index 00000000..8ff1bb70 Binary files /dev/null and b/.gitbook/assets/arweave-1.png differ diff --git a/.gitbook/assets/arweave-2.png b/.gitbook/assets/arweave-2.png new file mode 100644 index 00000000..568a8c57 Binary files /dev/null and b/.gitbook/assets/arweave-2.png differ diff --git a/.gitbook/assets/arweave-3.png b/.gitbook/assets/arweave-3.png new file mode 100644 index 00000000..2b730ac6 Binary files /dev/null and b/.gitbook/assets/arweave-3.png differ diff --git a/.gitbook/assets/arweave-4.png b/.gitbook/assets/arweave-4.png new file mode 100644 index 00000000..beb9bff3 Binary files /dev/null and b/.gitbook/assets/arweave-4.png differ diff --git a/.gitbook/assets/aws-1.png b/.gitbook/assets/aws-1.png new file mode 100644 index 00000000..7dbe1876 Binary files /dev/null and b/.gitbook/assets/aws-1.png differ diff --git a/.gitbook/assets/aws-10.png b/.gitbook/assets/aws-10.png new file mode 100644 index 00000000..f31f8c6d Binary files /dev/null and b/.gitbook/assets/aws-10.png differ diff --git a/.gitbook/assets/aws-11.png b/.gitbook/assets/aws-11.png new file mode 100644 index 00000000..6bfe518d Binary files /dev/null and b/.gitbook/assets/aws-11.png differ diff --git a/.gitbook/assets/aws-12.png b/.gitbook/assets/aws-12.png new file mode 100644 index 00000000..9662a052 Binary files /dev/null and b/.gitbook/assets/aws-12.png differ diff --git a/.gitbook/assets/aws-2.png b/.gitbook/assets/aws-2.png new file mode 100644 index 00000000..0a057d88 Binary files /dev/null and b/.gitbook/assets/aws-2.png differ diff --git a/.gitbook/assets/aws-3.png b/.gitbook/assets/aws-3.png new file mode 100644 index 00000000..3de5511f Binary files /dev/null and b/.gitbook/assets/aws-3.png differ diff --git a/.gitbook/assets/aws-4.png b/.gitbook/assets/aws-4.png new file mode 100644 index 00000000..27c76402 Binary files /dev/null and b/.gitbook/assets/aws-4.png differ diff --git a/.gitbook/assets/aws-5.png b/.gitbook/assets/aws-5.png new file mode 100644 index 00000000..7d1ba64a Binary files /dev/null and b/.gitbook/assets/aws-5.png differ diff --git a/.gitbook/assets/aws-6.png b/.gitbook/assets/aws-6.png new file mode 100644 index 00000000..845ee8ec Binary files /dev/null and b/.gitbook/assets/aws-6.png differ diff --git a/.gitbook/assets/aws-7.png b/.gitbook/assets/aws-7.png new file mode 100644 index 00000000..c30214af Binary files /dev/null and b/.gitbook/assets/aws-7.png differ diff --git a/.gitbook/assets/aws-8.png b/.gitbook/assets/aws-8.png new file mode 100644 index 00000000..e09238bc Binary files /dev/null and b/.gitbook/assets/aws-8.png differ diff --git a/.gitbook/assets/aws-9.png b/.gitbook/assets/aws-9.png new file mode 100644 index 00000000..b1bf06b1 Binary files /dev/null and b/.gitbook/assets/aws-9.png differ diff --git a/.gitbook/assets/azure1.png b/.gitbook/assets/azure1.png new file mode 100644 index 00000000..fa00009a Binary files /dev/null and b/.gitbook/assets/azure1.png differ diff --git a/.gitbook/assets/azure10.png b/.gitbook/assets/azure10.png new file mode 100644 index 00000000..32434092 Binary files /dev/null and b/.gitbook/assets/azure10.png differ diff --git a/.gitbook/assets/azure2.png b/.gitbook/assets/azure2.png new file mode 100644 index 00000000..511ff199 Binary files /dev/null and b/.gitbook/assets/azure2.png differ diff --git a/.gitbook/assets/azure3.png b/.gitbook/assets/azure3.png new file mode 100644 index 00000000..4cf63916 Binary files /dev/null and b/.gitbook/assets/azure3.png differ diff --git a/.gitbook/assets/azure4.png b/.gitbook/assets/azure4.png new file mode 100644 index 00000000..2b074641 Binary files /dev/null and b/.gitbook/assets/azure4.png differ diff --git a/.gitbook/assets/azure5.png b/.gitbook/assets/azure5.png new file mode 100644 index 00000000..c07525e5 Binary files /dev/null and b/.gitbook/assets/azure5.png differ diff --git a/.gitbook/assets/azure6.png b/.gitbook/assets/azure6.png new file mode 100644 index 00000000..4c576189 Binary files /dev/null and b/.gitbook/assets/azure6.png differ diff --git a/.gitbook/assets/azure7.png b/.gitbook/assets/azure7.png new file mode 100644 index 00000000..000dc780 Binary files /dev/null and b/.gitbook/assets/azure7.png differ diff --git a/.gitbook/assets/azure8.png b/.gitbook/assets/azure8.png new file mode 100644 index 00000000..d424ccae Binary files /dev/null and b/.gitbook/assets/azure8.png differ diff --git a/.gitbook/assets/azure9.png b/.gitbook/assets/azure9.png new file mode 100644 index 00000000..f46b3c23 Binary files /dev/null and b/.gitbook/assets/azure9.png differ diff --git a/.gitbook/assets/barge.png b/.gitbook/assets/barge.png new file mode 100644 index 00000000..d1e26cd6 Binary files /dev/null and b/.gitbook/assets/barge.png differ diff --git a/.gitbook/assets/big-money.gif b/.gitbook/assets/big-money.gif new file mode 100644 index 00000000..9276d391 Binary files /dev/null and b/.gitbook/assets/big-money.gif differ diff --git a/.gitbook/assets/binance-receive.png b/.gitbook/assets/binance-receive.png new file mode 100644 index 00000000..343c81d8 Binary files /dev/null and b/.gitbook/assets/binance-receive.png differ diff --git a/.gitbook/assets/builders.png b/.gitbook/assets/builders.png new file mode 100644 index 00000000..1ae03cac Binary files /dev/null and b/.gitbook/assets/builders.png differ diff --git a/.gitbook/assets/buy-compute-job.png b/.gitbook/assets/buy-compute-job.png new file mode 100644 index 00000000..c2c360e5 Binary files /dev/null and b/.gitbook/assets/buy-compute-job.png differ diff --git a/.gitbook/assets/c2d-mental-model.png b/.gitbook/assets/c2d-mental-model.png new file mode 100644 index 00000000..6bdd4549 Binary files /dev/null and b/.gitbook/assets/c2d-mental-model.png differ diff --git a/.gitbook/assets/c2d_compute_job.png b/.gitbook/assets/c2d_compute_job.png new file mode 100644 index 00000000..6c3c4e3d Binary files /dev/null and b/.gitbook/assets/c2d_compute_job.png differ diff --git a/.gitbook/assets/c2d_detailed_flow.png b/.gitbook/assets/c2d_detailed_flow.png new file mode 100644 index 00000000..60e0c79d Binary files /dev/null and b/.gitbook/assets/c2d_detailed_flow.png differ diff --git a/.gitbook/assets/c2dstart.png b/.gitbook/assets/c2dstart.png new file mode 100644 index 00000000..97fee292 Binary files /dev/null and b/.gitbook/assets/c2dstart.png differ diff --git a/.gitbook/assets/change-payment-collector.png b/.gitbook/assets/change-payment-collector.png new file mode 100644 index 00000000..aac636b1 Binary files /dev/null and b/.gitbook/assets/change-payment-collector.png differ diff --git a/.gitbook/assets/confirm-backup-phrase.png b/.gitbook/assets/confirm-backup-phrase.png new file mode 100644 index 00000000..5fa40a1c Binary files /dev/null and b/.gitbook/assets/confirm-backup-phrase.png differ diff --git a/.gitbook/assets/connect-wallet.png b/.gitbook/assets/connect-wallet.png new file mode 100644 index 00000000..9d5327b7 Binary files /dev/null and b/.gitbook/assets/connect-wallet.png differ diff --git a/.gitbook/assets/contribute_banner.png b/.gitbook/assets/contribute_banner.png new file mode 100644 index 00000000..b627c8d5 Binary files /dev/null and b/.gitbook/assets/contribute_banner.png differ diff --git a/.gitbook/assets/contribute_card.png b/.gitbook/assets/contribute_card.png new file mode 100644 index 00000000..4ee76eef Binary files /dev/null and b/.gitbook/assets/contribute_card.png differ diff --git a/.gitbook/assets/create-new-metamask-wallet.png b/.gitbook/assets/create-new-metamask-wallet.png new file mode 100644 index 00000000..f53a81cd Binary files /dev/null and b/.gitbook/assets/create-new-metamask-wallet.png differ diff --git a/.gitbook/assets/dao.jpeg b/.gitbook/assets/dao.jpeg new file mode 100644 index 00000000..6c291bc3 Binary files /dev/null and b/.gitbook/assets/dao.jpeg differ diff --git a/.gitbook/assets/dapps.png b/.gitbook/assets/dapps.png new file mode 100644 index 00000000..b29bde22 Binary files /dev/null and b/.gitbook/assets/dapps.png differ diff --git a/.gitbook/assets/data-nft-c2d-preview.png b/.gitbook/assets/data-nft-c2d-preview.png new file mode 100644 index 00000000..68216e5e Binary files /dev/null and b/.gitbook/assets/data-nft-c2d-preview.png differ diff --git a/.gitbook/assets/data-value-creation-loop.png b/.gitbook/assets/data-value-creation-loop.png new file mode 100644 index 00000000..973616e0 Binary files /dev/null and b/.gitbook/assets/data-value-creation-loop.png differ diff --git a/.gitbook/assets/data_everywhere.gif b/.gitbook/assets/data_everywhere.gif new file mode 100644 index 00000000..e24abcfb Binary files /dev/null and b/.gitbook/assets/data_everywhere.gif differ diff --git a/.gitbook/assets/data_farming_banner.png b/.gitbook/assets/data_farming_banner.png new file mode 100644 index 00000000..966c8356 Binary files /dev/null and b/.gitbook/assets/data_farming_banner.png differ diff --git a/.gitbook/assets/data_nft_open_sea.png b/.gitbook/assets/data_nft_open_sea.png new file mode 100644 index 00000000..360e0e7f Binary files /dev/null and b/.gitbook/assets/data_nft_open_sea.png differ diff --git a/.gitbook/assets/data_scientists_banner.png b/.gitbook/assets/data_scientists_banner.png new file mode 100644 index 00000000..26b98989 Binary files /dev/null and b/.gitbook/assets/data_scientists_banner.png differ diff --git a/.gitbook/assets/data_scientists_card.png b/.gitbook/assets/data_scientists_card.png new file mode 100644 index 00000000..f8a2bfdc Binary files /dev/null and b/.gitbook/assets/data_scientists_card.png differ diff --git a/.gitbook/assets/datanfts_and_datatokens_flow.png b/.gitbook/assets/datanfts_and_datatokens_flow.png new file mode 100644 index 00000000..2b2d85a3 Binary files /dev/null and b/.gitbook/assets/datanfts_and_datatokens_flow.png differ diff --git a/.gitbook/assets/dataset-compute-option.png b/.gitbook/assets/dataset-compute-option.png new file mode 100644 index 00000000..a9f98314 Binary files /dev/null and b/.gitbook/assets/dataset-compute-option.png differ diff --git a/.gitbook/assets/dataset-default-option.png b/.gitbook/assets/dataset-default-option.png new file mode 100644 index 00000000..bf25c247 Binary files /dev/null and b/.gitbook/assets/dataset-default-option.png differ diff --git a/.gitbook/assets/developer_banner.png b/.gitbook/assets/developer_banner.png new file mode 100644 index 00000000..cc039eae Binary files /dev/null and b/.gitbook/assets/developer_banner.png differ diff --git a/.gitbook/assets/developer_card.png b/.gitbook/assets/developer_card.png new file mode 100644 index 00000000..f0f5ebe9 Binary files /dev/null and b/.gitbook/assets/developer_card.png differ diff --git a/.gitbook/assets/discover_banner.png b/.gitbook/assets/discover_banner.png new file mode 100644 index 00000000..00b9d1e9 Binary files /dev/null and b/.gitbook/assets/discover_banner.png differ diff --git a/.gitbook/assets/discover_card.png b/.gitbook/assets/discover_card.png new file mode 100644 index 00000000..b41976df Binary files /dev/null and b/.gitbook/assets/discover_card.png differ diff --git a/.gitbook/assets/docker-image.png b/.gitbook/assets/docker-image.png new file mode 100644 index 00000000..1e5c1a17 Binary files /dev/null and b/.gitbook/assets/docker-image.png differ diff --git a/.gitbook/assets/double-check-work.png b/.gitbook/assets/double-check-work.png new file mode 100644 index 00000000..cbd39efc Binary files /dev/null and b/.gitbook/assets/double-check-work.png differ diff --git a/.gitbook/assets/download.png b/.gitbook/assets/download.png new file mode 100644 index 00000000..9bafeef7 Binary files /dev/null and b/.gitbook/assets/download.png differ diff --git a/.gitbook/assets/drew-barrymore-notes.gif b/.gitbook/assets/drew-barrymore-notes.gif new file mode 100644 index 00000000..3e8e3b40 Binary files /dev/null and b/.gitbook/assets/drew-barrymore-notes.gif differ diff --git a/.gitbook/assets/edit-asset-link.png b/.gitbook/assets/edit-asset-link.png new file mode 100644 index 00000000..c988720c Binary files /dev/null and b/.gitbook/assets/edit-asset-link.png differ diff --git a/.gitbook/assets/edit-compute-settings.png b/.gitbook/assets/edit-compute-settings.png new file mode 100644 index 00000000..a2022e8e Binary files /dev/null and b/.gitbook/assets/edit-compute-settings.png differ diff --git a/.gitbook/assets/follow-instructions.gif b/.gitbook/assets/follow-instructions.gif new file mode 100644 index 00000000..306837a3 Binary files /dev/null and b/.gitbook/assets/follow-instructions.gif differ diff --git a/.gitbook/assets/getAsset.png b/.gitbook/assets/getAsset.png new file mode 100644 index 00000000..82d25acc Binary files /dev/null and b/.gitbook/assets/getAsset.png differ diff --git a/.gitbook/assets/giphy.webp b/.gitbook/assets/giphy.webp new file mode 100644 index 00000000..21682362 Binary files /dev/null and b/.gitbook/assets/giphy.webp differ diff --git a/.gitbook/assets/image (1).png b/.gitbook/assets/image (1).png new file mode 100644 index 00000000..8c49613f Binary files /dev/null and b/.gitbook/assets/image (1).png differ diff --git a/.gitbook/assets/image (2).png b/.gitbook/assets/image (2).png new file mode 100644 index 00000000..12de50b0 Binary files /dev/null and b/.gitbook/assets/image (2).png differ diff --git a/.gitbook/assets/image (5).png b/.gitbook/assets/image (5).png new file mode 100644 index 00000000..9722765b Binary files /dev/null and b/.gitbook/assets/image (5).png differ diff --git a/.gitbook/assets/image (6).png b/.gitbook/assets/image (6).png new file mode 100644 index 00000000..570dafdd Binary files /dev/null and b/.gitbook/assets/image (6).png differ diff --git a/.gitbook/assets/image.png b/.gitbook/assets/image.png new file mode 100644 index 00000000..61594cef Binary files /dev/null and b/.gitbook/assets/image.png differ diff --git a/.gitbook/assets/infrastructure_banner.png b/.gitbook/assets/infrastructure_banner.png new file mode 100644 index 00000000..a2568603 Binary files /dev/null and b/.gitbook/assets/infrastructure_banner.png differ diff --git a/.gitbook/assets/infrastructure_card.png b/.gitbook/assets/infrastructure_card.png new file mode 100644 index 00000000..395fb229 Binary files /dev/null and b/.gitbook/assets/infrastructure_card.png differ diff --git a/.gitbook/assets/jobResults.png b/.gitbook/assets/jobResults.png new file mode 100644 index 00000000..0e0fba5c Binary files /dev/null and b/.gitbook/assets/jobResults.png differ diff --git a/.gitbook/assets/jobstatus.png b/.gitbook/assets/jobstatus.png new file mode 100644 index 00000000..af6f04a8 Binary files /dev/null and b/.gitbook/assets/jobstatus.png differ diff --git a/.gitbook/assets/like-a-boss.gif b/.gitbook/assets/like-a-boss.gif new file mode 100644 index 00000000..3cf63a3a Binary files /dev/null and b/.gitbook/assets/like-a-boss.gif differ diff --git a/.gitbook/assets/manage-tokens.png b/.gitbook/assets/manage-tokens.png new file mode 100644 index 00000000..09a6f4c4 Binary files /dev/null and b/.gitbook/assets/manage-tokens.png differ diff --git a/.gitbook/assets/marketplace.png b/.gitbook/assets/marketplace.png new file mode 100644 index 00000000..a95fd427 Binary files /dev/null and b/.gitbook/assets/marketplace.png differ diff --git a/.gitbook/assets/marketplace_data.jpg b/.gitbook/assets/marketplace_data.jpg new file mode 100644 index 00000000..539db422 Binary files /dev/null and b/.gitbook/assets/marketplace_data.jpg differ diff --git a/.gitbook/assets/matrix-code.gif b/.gitbook/assets/matrix-code.gif new file mode 100644 index 00000000..9f3356ae Binary files /dev/null and b/.gitbook/assets/matrix-code.gif differ diff --git a/.gitbook/assets/metamask-add-network.png b/.gitbook/assets/metamask-add-network.png new file mode 100644 index 00000000..7b756c36 Binary files /dev/null and b/.gitbook/assets/metamask-add-network.png differ diff --git a/.gitbook/assets/metamask-browser-extension.png b/.gitbook/assets/metamask-browser-extension.png new file mode 100644 index 00000000..7f590505 Binary files /dev/null and b/.gitbook/assets/metamask-browser-extension.png differ diff --git a/.gitbook/assets/metamask-chrome-extension.png b/.gitbook/assets/metamask-chrome-extension.png new file mode 100644 index 00000000..af811b08 Binary files /dev/null and b/.gitbook/assets/metamask-chrome-extension.png differ diff --git a/.gitbook/assets/money-robot.gif b/.gitbook/assets/money-robot.gif new file mode 100644 index 00000000..4ea8aa78 Binary files /dev/null and b/.gitbook/assets/money-robot.gif differ diff --git a/.gitbook/assets/morpheus-taunting.gif b/.gitbook/assets/morpheus-taunting.gif new file mode 100644 index 00000000..2211fb35 Binary files /dev/null and b/.gitbook/assets/morpheus-taunting.gif differ diff --git a/.gitbook/assets/my-data.gif b/.gitbook/assets/my-data.gif new file mode 100644 index 00000000..f2dd42fb Binary files /dev/null and b/.gitbook/assets/my-data.gif differ diff --git a/.gitbook/assets/network-and-datatoken-address.png b/.gitbook/assets/network-and-datatoken-address.png new file mode 100644 index 00000000..7557121e Binary files /dev/null and b/.gitbook/assets/network-and-datatoken-address.png differ diff --git a/.gitbook/assets/oceanArt.jpg b/.gitbook/assets/oceanArt.jpg new file mode 100644 index 00000000..f4af0c96 Binary files /dev/null and b/.gitbook/assets/oceanArt.jpg differ diff --git a/.gitbook/assets/oceanLearn.jpg b/.gitbook/assets/oceanLearn.jpg new file mode 100644 index 00000000..1997b986 Binary files /dev/null and b/.gitbook/assets/oceanLearn.jpg differ diff --git a/.gitbook/assets/oceanReads.jpg b/.gitbook/assets/oceanReads.jpg new file mode 100644 index 00000000..a3360ed2 Binary files /dev/null and b/.gitbook/assets/oceanReads.jpg differ diff --git a/.gitbook/assets/ocean_py.png b/.gitbook/assets/ocean_py.png new file mode 100644 index 00000000..9becf0ac Binary files /dev/null and b/.gitbook/assets/ocean_py.png differ diff --git a/.gitbook/assets/ocean_waves.png b/.gitbook/assets/ocean_waves.png new file mode 100644 index 00000000..8a17afea Binary files /dev/null and b/.gitbook/assets/ocean_waves.png differ diff --git a/.gitbook/assets/onramp-offramp.png b/.gitbook/assets/onramp-offramp.png new file mode 100644 index 00000000..256e4431 Binary files /dev/null and b/.gitbook/assets/onramp-offramp.png differ diff --git a/.gitbook/assets/polygon-bridge.png b/.gitbook/assets/polygon-bridge.png new file mode 100644 index 00000000..ab3ac3b5 Binary files /dev/null and b/.gitbook/assets/polygon-bridge.png differ diff --git a/.gitbook/assets/polygon-explorer.png b/.gitbook/assets/polygon-explorer.png new file mode 100644 index 00000000..6cb11ed3 Binary files /dev/null and b/.gitbook/assets/polygon-explorer.png differ diff --git a/.gitbook/assets/polygon-login.png b/.gitbook/assets/polygon-login.png new file mode 100644 index 00000000..e9b366dc Binary files /dev/null and b/.gitbook/assets/polygon-login.png differ diff --git a/.gitbook/assets/polygon-ocean.png b/.gitbook/assets/polygon-ocean.png new file mode 100644 index 00000000..aec7500b Binary files /dev/null and b/.gitbook/assets/polygon-ocean.png differ diff --git a/.gitbook/assets/polygon-wallet-page.png b/.gitbook/assets/polygon-wallet-page.png new file mode 100644 index 00000000..66421870 Binary files /dev/null and b/.gitbook/assets/polygon-wallet-page.png differ diff --git a/.gitbook/assets/predictoor_banner.png b/.gitbook/assets/predictoor_banner.png new file mode 100644 index 00000000..399ff422 Binary files /dev/null and b/.gitbook/assets/predictoor_banner.png differ diff --git a/.gitbook/assets/predictoor_card.jpg b/.gitbook/assets/predictoor_card.jpg new file mode 100644 index 00000000..0f77bb0a Binary files /dev/null and b/.gitbook/assets/predictoor_card.jpg differ diff --git a/.gitbook/assets/predictoordf_main.png b/.gitbook/assets/predictoordf_main.png new file mode 100644 index 00000000..df12e030 Binary files /dev/null and b/.gitbook/assets/predictoordf_main.png differ diff --git a/.gitbook/assets/preview-publish.png b/.gitbook/assets/preview-publish.png new file mode 100644 index 00000000..c0c36272 Binary files /dev/null and b/.gitbook/assets/preview-publish.png differ diff --git a/.gitbook/assets/pricing_schemas.png b/.gitbook/assets/pricing_schemas.png new file mode 100644 index 00000000..88a64781 Binary files /dev/null and b/.gitbook/assets/pricing_schemas.png differ diff --git a/.gitbook/assets/provider.png b/.gitbook/assets/provider.png new file mode 100644 index 00000000..39efdde4 Binary files /dev/null and b/.gitbook/assets/provider.png differ diff --git a/.gitbook/assets/publish (1).png b/.gitbook/assets/publish (1).png new file mode 100644 index 00000000..80be9a16 Binary files /dev/null and b/.gitbook/assets/publish (1).png differ diff --git a/.gitbook/assets/publish.png b/.gitbook/assets/publish.png new file mode 100644 index 00000000..bf3a381d Binary files /dev/null and b/.gitbook/assets/publish.png differ diff --git a/.gitbook/assets/publish_and_retrieve_ddos.png b/.gitbook/assets/publish_and_retrieve_ddos.png new file mode 100644 index 00000000..92f08b37 Binary files /dev/null and b/.gitbook/assets/publish_and_retrieve_ddos.png differ diff --git a/.gitbook/assets/publish_detailed_flow.png b/.gitbook/assets/publish_detailed_flow.png new file mode 100644 index 00000000..a876df90 Binary files /dev/null and b/.gitbook/assets/publish_detailed_flow.png differ diff --git a/.gitbook/assets/purchase-and-compute_and_ocean-network.png b/.gitbook/assets/purchase-and-compute_and_ocean-network.png new file mode 100644 index 00000000..2cc13fd5 Binary files /dev/null and b/.gitbook/assets/purchase-and-compute_and_ocean-network.png differ diff --git a/.gitbook/assets/read-contract.png b/.gitbook/assets/read-contract.png new file mode 100644 index 00000000..cd6f3165 Binary files /dev/null and b/.gitbook/assets/read-contract.png differ diff --git a/.gitbook/assets/remove-liquidity-2.png b/.gitbook/assets/remove-liquidity-2.png new file mode 100644 index 00000000..c99a54ac Binary files /dev/null and b/.gitbook/assets/remove-liquidity-2.png differ diff --git a/.gitbook/assets/remove-liquidity-6.png b/.gitbook/assets/remove-liquidity-6.png new file mode 100644 index 00000000..a52c717e Binary files /dev/null and b/.gitbook/assets/remove-liquidity-6.png differ diff --git a/.gitbook/assets/remove-liquidity.png b/.gitbook/assets/remove-liquidity.png new file mode 100644 index 00000000..37dd44fe Binary files /dev/null and b/.gitbook/assets/remove-liquidity.png differ diff --git a/.gitbook/assets/roles_datatokens_level.png b/.gitbook/assets/roles_datatokens_level.png new file mode 100644 index 00000000..0c5ef5ae Binary files /dev/null and b/.gitbook/assets/roles_datatokens_level.png differ diff --git a/.gitbook/assets/roles_nft_level.png b/.gitbook/assets/roles_nft_level.png new file mode 100644 index 00000000..4593a88d Binary files /dev/null and b/.gitbook/assets/roles_nft_level.png differ diff --git a/.gitbook/assets/secret-backup-phrase.png b/.gitbook/assets/secret-backup-phrase.png new file mode 100644 index 00000000..04a2a278 Binary files /dev/null and b/.gitbook/assets/secret-backup-phrase.png differ diff --git a/.gitbook/assets/select-algorithm-for-compute.png b/.gitbook/assets/select-algorithm-for-compute.png new file mode 100644 index 00000000..e6b1b07f Binary files /dev/null and b/.gitbook/assets/select-algorithm-for-compute.png differ diff --git a/.gitbook/assets/sponge-money.gif b/.gitbook/assets/sponge-money.gif new file mode 100644 index 00000000..c2507e64 Binary files /dev/null and b/.gitbook/assets/sponge-money.gif differ diff --git a/.gitbook/assets/subgraph.png b/.gitbook/assets/subgraph.png new file mode 100644 index 00000000..dba06b03 Binary files /dev/null and b/.gitbook/assets/subgraph.png differ diff --git a/.gitbook/assets/talk-data-to-me.gif b/.gitbook/assets/talk-data-to-me.gif new file mode 100644 index 00000000..c147240a Binary files /dev/null and b/.gitbook/assets/talk-data-to-me.gif differ diff --git a/.gitbook/assets/the-algorithm.gif b/.gitbook/assets/the-algorithm.gif new file mode 100644 index 00000000..4df0b339 Binary files /dev/null and b/.gitbook/assets/the-algorithm.gif differ diff --git a/.gitbook/assets/to-the-computer.gif b/.gitbook/assets/to-the-computer.gif new file mode 100644 index 00000000..76a6210b Binary files /dev/null and b/.gitbook/assets/to-the-computer.gif differ diff --git a/.gitbook/assets/tokengate.png b/.gitbook/assets/tokengate.png new file mode 100644 index 00000000..2154b6ca Binary files /dev/null and b/.gitbook/assets/tokengate.png differ diff --git a/.gitbook/assets/tokengated_chatbot.png b/.gitbook/assets/tokengated_chatbot.png new file mode 100644 index 00000000..2b838438 Binary files /dev/null and b/.gitbook/assets/tokengated_chatbot.png differ diff --git a/.gitbook/assets/total-supply.png b/.gitbook/assets/total-supply.png new file mode 100644 index 00000000..3a640906 Binary files /dev/null and b/.gitbook/assets/total-supply.png differ diff --git a/.gitbook/assets/uploader_screen_11.png b/.gitbook/assets/uploader_screen_11.png new file mode 100644 index 00000000..0ade5189 Binary files /dev/null and b/.gitbook/assets/uploader_screen_11.png differ diff --git a/.gitbook/assets/uploader_screen_12.png b/.gitbook/assets/uploader_screen_12.png new file mode 100644 index 00000000..02cf37bf Binary files /dev/null and b/.gitbook/assets/uploader_screen_12.png differ diff --git a/.gitbook/assets/uploader_screen_13.png b/.gitbook/assets/uploader_screen_13.png new file mode 100644 index 00000000..7229ec33 Binary files /dev/null and b/.gitbook/assets/uploader_screen_13.png differ diff --git a/.gitbook/assets/uploader_screen_14.png b/.gitbook/assets/uploader_screen_14.png new file mode 100644 index 00000000..37928beb Binary files /dev/null and b/.gitbook/assets/uploader_screen_14.png differ diff --git a/.gitbook/assets/uploader_screen_15.png b/.gitbook/assets/uploader_screen_15.png new file mode 100644 index 00000000..21c17f39 Binary files /dev/null and b/.gitbook/assets/uploader_screen_15.png differ diff --git a/.gitbook/assets/usage.png b/.gitbook/assets/usage.png new file mode 100644 index 00000000..50bd6b70 Binary files /dev/null and b/.gitbook/assets/usage.png differ diff --git a/.gitbook/assets/user_guides_banner.png b/.gitbook/assets/user_guides_banner.png new file mode 100644 index 00000000..db2d6197 Binary files /dev/null and b/.gitbook/assets/user_guides_banner.png differ diff --git a/.gitbook/assets/user_guides_card.png b/.gitbook/assets/user_guides_card.png new file mode 100644 index 00000000..ec1321c6 Binary files /dev/null and b/.gitbook/assets/user_guides_card.png differ diff --git a/.gitbook/assets/v4_contracts_overview.png b/.gitbook/assets/v4_contracts_overview.png new file mode 100644 index 00000000..a4aa4e02 Binary files /dev/null and b/.gitbook/assets/v4_contracts_overview.png differ diff --git a/.gitbook/assets/wait.png b/.gitbook/assets/wait.png new file mode 100644 index 00000000..57a1d138 Binary files /dev/null and b/.gitbook/assets/wait.png differ diff --git a/.gitbook/assets/webPallete.png b/.gitbook/assets/webPallete.png new file mode 100644 index 00000000..f158016a Binary files /dev/null and b/.gitbook/assets/webPallete.png differ diff --git a/.gitbook/assets/welcome-to-my-dojo.gif b/.gitbook/assets/welcome-to-my-dojo.gif new file mode 100644 index 00000000..309ebcb0 Binary files /dev/null and b/.gitbook/assets/welcome-to-my-dojo.gif differ diff --git a/.gitbook/assets/whats-a-wallet.gif b/.gitbook/assets/whats-a-wallet.gif new file mode 100644 index 00000000..11d7ce42 Binary files /dev/null and b/.gitbook/assets/whats-a-wallet.gif differ diff --git a/.gitbook/assets/whirlpool.png b/.gitbook/assets/whirlpool.png new file mode 100644 index 00000000..c3b1422b Binary files /dev/null and b/.gitbook/assets/whirlpool.png differ diff --git a/.gitbook/assets/write-contract.png b/.gitbook/assets/write-contract.png new file mode 100644 index 00000000..116c7a8f Binary files /dev/null and b/.gitbook/assets/write-contract.png differ diff --git a/README.md b/README.md index 585e93e3..872b88b1 100644 --- a/README.md +++ b/README.md @@ -3,73 +3,6 @@ description: Help for wherever you are on your Ocean Protocol journey. layout: landing --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
discoverLearn how Ocean Protocol transforms data sharing and monetization with its powerful Web3 open source tools.discoverdiscover_card.png
user-guidesFollow the step-by-step instructions for a no-code solution to unleash the power of Ocean Protocol technologies!user-guidesuser_guides_card.png
developersFind APIs, libraries, and other tools to build awesome dApps or integrate with the Ocean Protocol ecosystem.developersdeveloper_card.png
data-scientistsEarn $ from AI models, track provenance, get more data.data-scientistsdata_scientists_card.png
predictoorRun AI-powered prediction bots or trading bots to earn $.predictoorpredictoor_card.jpg
infrastructureFor software architects and developers - deploy your own components in Ocean Protocol ecosystem.infrastructureinfrastructure_card.png
contributeGet involved! Learn how to contribute to Ocean Protocol.contributecontribute_card.png
+# 👋 Ocean docs + +
discoverLearn how Ocean Protocol transforms data sharing and monetization with its powerful Web3 open source tools.discoverdiscover_card.png
user-guidesFollow the step-by-step instructions for a no-code solution to unleash the power of Ocean Protocol technologies!user-guidesuser_guides_card.png
developersFind APIs, libraries, and other tools to build awesome dApps or integrate with the Ocean Protocol ecosystem.developersdeveloper_card.png
data-scientistsEarn $ from AI models, track provenance, get more data.data-scientistsdata_scientists_card.png
predictoor.mdRun AI-powered prediction bots or trading bots to earn $.predictoor.mdpredictoor_card.jpg
infrastructureFor software architects and developers - deploy your own components in Ocean Protocol ecosystem.infrastructureinfrastructure_card.png
contributeGet involved! Learn how to contribute to Ocean Protocol.contributecontribute_card.png
diff --git a/SUMMARY.md b/SUMMARY.md index 012808b5..96f848dd 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,109 +1,114 @@ # Table of contents -- [Ocean docs](README.md) -- [🌊 Discover Ocean](discover/README.md) - - [Why Ocean?](discover/why-ocean.md) - - [What is Ocean?](discover/what-is-ocean.md) - - [What can you do with Ocean?](discover/benefits.md) - - [OCEAN: The Ocean token](discover/ocean-token.md) - - [Networks](discover/networks/README.md) - - [Network Bridges](discover/networks/bridges.md) - - [FAQ](discover/faq.md) - - [Glossary](discover/glossary.md) -- [📚 User Guides](user-guides/README.md) - - [Basic concepts](user-guides/basic-concepts.md) - - [Using Wallets](user-guides/wallets/README.md) - - [Set Up MetaMask](user-guides/wallets/metamask-setup.md) - - [Manage Your OCEAN](user-guides/wallets/wallets-and-ocean.md) - - [Data Storage](user-guides/asset-hosting/README.md) - - [Uploader](user-guides/asset-hosting/uploader.md) - - [Arweave](user-guides/asset-hosting/arweave.md) - - [AWS](user-guides/asset-hosting/aws.md) - - [Azure Cloud](user-guides/asset-hosting/azure-cloud.md) - - [Google Storage](user-guides/asset-hosting/google-storage.md) - - [Github](user-guides/asset-hosting/github.md) - - [Liquidity Pools \[deprecated\]](user-guides/remove-liquidity-pools.md) -- [💻 Developers](developers/README.md) - - [Architecture Overview](developers/architecture.md) - - [Contracts](developers/contracts/README.md) - - [Data NFTs](developers/contracts/data-nfts.md) - - [Datatokens](developers/contracts/datatokens.md) - - [Data NFTs and Datatokens](developers/contracts/datanft-and-datatoken.md) - - [Datatoken Templates](developers/contracts/datatoken-templates.md) - - [Roles](developers/contracts/roles.md) - - [Pricing Schemas](developers/contracts/pricing-schemas.md) - - [Fees](developers/contracts/fees.md) - - [Revenue](developers/contracts/revenue.md) - - [Fractional Ownership](developers/fractional-ownership.md) - - [Community Monetization](developers/community-monetization.md) - - [Metadata](developers/metadata.md) - - [Identifiers (DIDs)](developers/identifiers.md) - - [DDO Specification](developers/ddo-specification.md) - - [Storage Specifications](developers/storage.md) - - [Fine-Grained Permissions](developers/fg-permissions.md) - - [Retrieve datatoken/data NFT addresses & Chain ID](developers/retrieve-datatoken-address.md) - - [Get API Keys for Blockchain Access](developers/get-api-keys-for-blockchain-access.md) - - [Barge](developers/barge/README.md) - - [Local Setup](developers/barge/local-setup-ganache.md) - - [Subgraph](developers/subgraph/README.md) - - [Get data NFTs](developers/subgraph/list-data-nfts.md) - - [Get data NFT information](developers/subgraph/get-data-nft-information.md) - - [Get datatokens](developers/subgraph/list-datatokens.md) - - [Get datatoken information](developers/subgraph/get-datatoken-information.md) - - [Get datatoken buyers](developers/subgraph/get-datatoken-buyers.md) - - [Get fixed-rate exchanges](developers/subgraph/list-fixed-rate-exchanges.md) - - [Get veOCEAN stats](developers/subgraph/get-veocean-stats.md) - - [Ocean.js](developers/ocean.js/README.md) - - [Configuration](developers/ocean.js/configuration.md) - - [Creating a data NFT](developers/ocean.js/creating-datanft.md) - - [Publish](developers/ocean.js/publish.md) - - [Mint Datatokens](developers/ocean.js/mint-datatoken.md) - - [Update Metadata](developers/ocean.js/update-metadata.md) - - [Asset Visibility](developers/ocean.js/asset-visibility.md) - - [Consume Asset](developers/ocean.js/consume-asset.md) - - [Run C2D Jobs](developers/ocean.js/cod-asset.md) - - [Ocean CLI](developers/ocean-cli/README.md) - - [Install](developers/ocean-cli/install.md) - - [Publish](developers/ocean-cli/publish.md) - - [Edit](developers/ocean-cli/edit.md) - - [Consume](developers/ocean-cli/consume.md) - - [Run C2D Jobs](developers/ocean-cli/run-c2d.md) - - [Compute to data](developers/compute-to-data/README.md) - - [Architecture](developers/compute-to-data/compute-to-data-architecture.md) - - [Datasets & Algorithms](developers/compute-to-data/compute-to-data-datasets-algorithms.md) - - [Workflow](developers/compute-to-data/compute-workflow.md) - - [Writing Algorithms](developers/compute-to-data/compute-to-data-algorithms.md) - - [Compute Options](developers/compute-to-data/compute-options.md) - - [Aquarius](developers/aquarius/README.md) - - [Asset Requests](developers/aquarius/asset-requests.md) - - [Chain Requests](developers/aquarius/chain-requests.md) - - [Other Requests](developers/aquarius/other-requests.md) - - [Provider](developers/provider/README.md) - - [General Endpoints](developers/provider/general-endpoints.md) - - [Encryption / Decryption](developers/provider/encryption-decryption.md) - - [Compute Endpoints](developers/provider/compute-endpoints.md) - - [Authentication Endpoints](developers/provider/authentication-endpoints.md) - - [Uploader](developers/uploader/README.md) - - [Uploader.js](developers/uploader/uploader-js.md) - - [Uploader UI](developers/uploader/uploader-ui.md) - - [Uploader UI to Market](developers/uploader/uploader-ui-marketplace.md) - - [Developer FAQ](developers/dev-faq.md) -- [📊 Data Scientists](data-scientists/README.md) - - [Ocean.py](data-scientists/ocean.py/README.md) - - [Install](data-scientists/ocean.py/install.md) - - [Local Setup](data-scientists/ocean.py/local-setup.md) - - [Remote Setup](data-scientists/ocean.py/remote-setup.md) - - [Publish Flow](data-scientists/ocean.py/publish-flow.md) - - [Consume Flow](data-scientists/ocean.py/consume-flow.md) - - [Compute Flow](data-scientists/ocean.py/compute-flow.md) - - [Ocean Instance Tech Details](data-scientists/ocean.py/technical-details.md) - - [Ocean Assets Tech Details](data-scientists/ocean.py/ocean-assets-tech-details.md) - - [Ocean Compute Tech Details](data-scientists/ocean.py/ocean-compute-tech-details.md) - - [Datatoken Interface Tech Details](data-scientists/ocean.py/datatoken-interface-tech-details.md) - - [Join a Data Challenge](data-scientists/join-a-data-challenge.md) - - [Sponsor a Data Challenge](data-scientists/sponsor-a-data-challenge.md) - - [Data Value-Creation Loop](data-scientists/the-data-value-creation-loop.md) - - [What data is valuable?](data-scientists/data-engineers.md) -* [👀 Predictoor](predictoor/README.md) + +* [👋 Ocean docs](README.md) +* [🌊 Discover Ocean](discover/README.md) + * [Why Ocean?](discover/why-ocean.md) + * [What is Ocean?](discover/what-is-ocean.md) + * [What can you do with Ocean?](discover/benefits.md) + * [OCEAN: The Ocean token](discover/ocean-token.md) + * [Networks](discover/networks.md) + * [Network Bridges](discover/bridges.md) + * [FAQ](discover/faq.md) + * [Glossary](discover/glossary.md) +* [📚 User Guides](user-guides/README.md) + * [Basic concepts](user-guides/basic-concepts.md) + * [Using Wallets](user-guides/wallets/README.md) + * [Set Up MetaMask](user-guides/wallets/metamask-setup.md) + * [Manage Your OCEAN](user-guides/wallets/wallets-and-ocean.md) + * [Compute-to-Data in Ocean Market](user-guides/compute-to-data/README.md) + * [Make a Boss C2D Algorithm](user-guides/compute-to-data/make-a-boss-c2d-algorithm.md) + * [Publish a C2D Algorithm NFT](user-guides/compute-to-data/publish-a-c2d-algorithm-nft.md) + * [Publish a C2D Data NFT](user-guides/compute-to-data/publish-a-c2d-data-nft.md) + * [Host Assets](user-guides/asset-hosting/README.md) + * [Uploader](user-guides/asset-hosting/uploader.md) + * [Arweave](user-guides/asset-hosting/arweave.md) + * [AWS](user-guides/asset-hosting/aws.md) + * [Azure Cloud](user-guides/asset-hosting/azure-cloud.md) + * [Google Storage](user-guides/asset-hosting/google-storage.md) + * [Github](user-guides/asset-hosting/github.md) + * [Liquidity Pools \[deprecated\]](user-guides/remove-liquidity-pools.md) +* [💻 Developers](developers/README.md) + * [Architecture Overview](developers/architecture.md) + * [Contracts](developers/contracts/README.md) + * [Data NFTs](developers/contracts/data-nfts.md) + * [Datatokens](developers/contracts/datatokens.md) + * [Data NFTs and Datatokens](developers/contracts/datanft-and-datatoken.md) + * [Datatoken Templates](developers/contracts/datatoken-templates.md) + * [Roles](developers/contracts/roles.md) + * [Pricing Schemas](developers/contracts/pricing-schemas.md) + * [Fees](developers/contracts/fees.md) + * [Revenue](developers/revenue.md) + * [Fractional Ownership](developers/fractional-ownership.md) + * [Community Monetization](developers/community-monetization.md) + * [Metadata](developers/metadata.md) + * [Identifiers (DIDs)](developers/identifiers.md) + * [DDO Specification](developers/ddo-specification.md) + * [Storage Specifications](developers/storage.md) + * [Fine-Grained Permissions](developers/fg-permissions.md) + * [Retrieve datatoken/data NFT addresses & Chain ID](developers/retrieve-datatoken-address.md) + * [Get API Keys for Blockchain Access](developers/get-api-keys-for-blockchain-access.md) + * [Barge](developers/barge/README.md) + * [Local Setup](developers/barge/local-setup-ganache.md) + * [Subgraph](developers/subgraph/README.md) + * [Get data NFTs](developers/subgraph/list-data-nfts.md) + * [Get data NFT information](developers/subgraph/get-data-nft-information.md) + * [Get datatokens](developers/subgraph/list-datatokens.md) + * [Get datatoken information](developers/subgraph/get-datatoken-information.md) + * [Get datatoken buyers](developers/subgraph/get-datatoken-buyers.md) + * [Get fixed-rate exchanges](developers/subgraph/list-fixed-rate-exchanges.md) + * [Get veOCEAN stats](developers/subgraph/get-veocean-stats.md) + * [Ocean.js](developers/ocean.js/README.md) + * [Configuration](developers/ocean.js/configuration.md) + * [Creating a data NFT](developers/ocean.js/creating-datanft.md) + * [Publish](developers/ocean.js/publish.md) + * [Mint Datatokens](developers/ocean.js/mint-datatoken.md) + * [Update Metadata](developers/ocean.js/update-metadata.md) + * [Asset Visibility](developers/ocean.js/asset-visibility.md) + * [Consume Asset](developers/ocean.js/consume-asset.md) + * [Run C2D Jobs](developers/ocean.js/cod-asset.md) + * [Ocean CLI](developers/ocean-cli/README.md) + * [Install](developers/ocean-cli/install.md) + * [Publish](developers/ocean-cli/publish.md) + * [Edit](developers/ocean-cli/edit.md) + * [Consume](developers/ocean-cli/consume.md) + * [Run C2D Jobs](developers/ocean-cli/run-c2d.md) + * [Compute to data](developers/compute-to-data/README.md) + * [Architecture](developers/compute-to-data/compute-to-data-architecture.md) + * [Datasets & Algorithms](developers/compute-to-data/compute-to-data-datasets-algorithms.md) + * [Workflow](developers/compute-to-data/compute-workflow.md) + * [Writing Algorithms](developers/compute-to-data/compute-to-data-algorithms.md) + * [Compute Options](developers/compute-to-data/compute-options.md) + * [Aquarius](developers/aquarius/README.md) + * [Asset Requests](developers/aquarius/asset-requests.md) + * [Chain Requests](developers/aquarius/chain-requests.md) + * [Other Requests](developers/aquarius/other-requests.md) + * [Provider](developers/provider/README.md) + * [General Endpoints](developers/provider/general-endpoints.md) + * [Encryption / Decryption](developers/provider/encryption-decryption.md) + * [Compute Endpoints](developers/provider/compute-endpoints.md) + * [Authentication Endpoints](developers/provider/authentication-endpoints.md) + * [Uploader](developers/uploader/README.md) + * [Uploader.js](developers/uploader/uploader-js.md) + * [Uploader UI](developers/uploader/uploader-ui.md) + * [Uploader UI to Market](developers/uploader/uploader-ui-marketplace.md) + * [Developer FAQ](developers/dev-faq.md) +* [📊 Data Scientists](data-scientists/README.md) + * [Ocean.py](data-scientists/ocean.py/README.md) + * [Install](data-scientists/ocean.py/install.md) + * [Local Setup](data-scientists/ocean.py/local-setup.md) + * [Remote Setup](data-scientists/ocean.py/remote-setup.md) + * [Publish Flow](data-scientists/ocean.py/publish-flow.md) + * [Consume Flow](data-scientists/ocean.py/consume-flow.md) + * [Compute Flow](data-scientists/ocean.py/compute-flow.md) + * [Ocean Instance Tech Details](data-scientists/ocean.py/technical-details.md) + * [Ocean Assets Tech Details](data-scientists/ocean.py/ocean-assets-tech-details.md) + * [Ocean Compute Tech Details](data-scientists/ocean.py/ocean-compute-tech-details.md) + * [Datatoken Interface Tech Details](data-scientists/ocean.py/datatoken-interface-tech-details.md) + * [Join a Data Challenge](data-scientists/join-a-data-challenge.md) + * [Sponsor a Data Challenge](data-scientists/sponsor-a-data-challenge.md) + * [Data Value-Creation Loop](data-scientists/the-data-value-creation-loop.md) + * [What data is valuable?](data-scientists/data-engineers.md) +* [👀 Predictoor](predictoor.md) * [🔨 Infrastructure](infrastructure/README.md) * [Set Up a Server](infrastructure/setup-server.md) * [Deploy Aquarius](infrastructure/deploying-aquarius.md) @@ -115,3 +120,21 @@ * [Collaborators](contribute/projects-using-ocean.md) * [Contributor Code of Conduct](contribute/code-of-conduct.md) * [Legal Requirements](contribute/legal-reqs.md) + +## Archive + +* [💰 Data Farming](archive/data-farming/README.md) + * [Passive DF (and veOCEAN)](archive/data-farming/passive-df-and-veocean/README.md) + * [Guide to Passive DF](archive/data-farming/passive-df-and-veocean/guide-to-passive-df.md) + * [Liquid Staking](archive/data-farming/passive-df-and-veocean/liquid-staking.md) + * [Volume DF](archive/data-farming/volume-df/README.md) + * [Guide to Volume DF](archive/data-farming/volume-df/guide-to-volume-df.md) + * [Delegation in Volume DF](archive/data-farming/volume-df/delegation-in-volume-df.md) + * [Predictoor DF](archive/data-farming/predictoordf/README.md) + * [Guide to Predictoor DF](archive/data-farming/predictoordf/predictoordf-guide.md) + * [Claim Rewards](archive/data-farming/claim-rewards.md) + * [Reward Schedule](archive/data-farming/reward-schedule.md) + * [APYs](archive/data-farming/apys/README.md) + * [Estimated APY vs Time](archive/data-farming/apys/estimated-apy-vs-time.md) + * [Guide to Estimating APY](archive/data-farming/apys/guide-to-estimating-apy.md) + * [FAQ](archive/data-farming/faq.md) diff --git a/archive/data-farming/README.md b/archive/data-farming/README.md new file mode 100644 index 00000000..7ecefe2a --- /dev/null +++ b/archive/data-farming/README.md @@ -0,0 +1,62 @@ +--- +description: Earn OCEAN rewards by predicting (and more streams to come). +cover: ../../.gitbook/assets/data_farming_banner.png +coverY: 0 +--- + +# 💰 Data Farming + +**Data Farming (DF) is Ocean's incentive program.** It rewards OCEAN to participants who make predictions (and more streams to come). + +[**The DF webapp**](https://df.oceandao.org) is where users perform most DF actions. + +## Current DF Streams & Budgets + +DF currently has one stream: + +* [**Predictoor DF**](predictoordf/)**.** Run prediction bots to earn continuously. 37,500 OCEAN/week + ROSE rewards. + +All streams repeat **weekly** that start on Thursdays 00:00 at UTC and end on Wed at 23:59 UTC. + +DF Streams evolve over time. The next two sections cover past & future DF streams. + +## Past DF Streams + +In **Passive DF**, users locked OCEAN for veOCEAN. In **Active DF**, users allocated veOCEAN to curate data assets. + +* veOCEAN, Passive DF, and Active DF were [retired](https://blog.oceanprotocol.com/passive-volume-data-farming-airdrop-has-completed-they-are-now-retired-6933520b5fcb) on May 3, 2024, alongside an an airdrop to veOCEAN holders. +* **veOCEAN holders can claim airdrop & past rewards at** [**df.oceandao.org/rewards**](https://df.oceandao.org/rewards). +* The locked OCEAN will unlock according to its schedule (up to 4 years) +* [This article](https://blog.oceanprotocol.com/passive-volume-data-farming-airdrop-has-completed-they-are-now-retired-6933520b5fcb) has details. + +In **Challenge DF**, users did weekly one-off predictions. It was [retired](https://blog.oceanprotocol.com/df62-completes-and-df63-launches-predictoor-df-is-here-081fc78ceb70) on Nov 30, 2023. + +For further details, the ["Data Farming Series" article](https://blog.oceanprotocol.com/ocean-data-farming-series-c7922f1d0e45) chronicles week-by-week rewards and DF evolution. + +## Future DF Streams + +Potential DF evolution includes: + +* Scaling up Predictoor DF rewards. [Details](https://blog.oceanprotocol.com/ocean-protocol-update-2024-e463bf855b03#4da0). +* New stream: run Unified Backend nodes. [Details](https://blog.oceanprotocol.com/ocean-protocol-update-2024-e463bf855b03#f779). +* New stream: decentralized model training for world-world models. [Details](https://github.com/oceanprotocol/docs/blob/node-release/data-farming/\[Details]\(https:/blog.oceanprotocol.com/ocean-protocol-update-2024-e463bf855b03/README.md#4da0\).) + +## Networks + +To engage in Predictoor DF, users submit Predictions on Oasis Sapphire. Rewards for Predictoor DF are on Oasis Sapphire as well (it's intertwined). + +Passive DF and Volume DF reward payouts are on Ethereum network. + +The [networks docs](../../discover/networks.md) have more info. + +## Further resources + +* The [**DF FAQ**](faq.md) answers more questions. +* Main DF github repos: [df-py (backend)](https://github.com/oceanprotocol/df-py), [df-web (frontend)](https://github.com/oceanprotocol/df-web) +* The [Ocean Data Farming Series](https://blog.oceanprotocol.com/ocean-data-farming-series-c7922f1d0e45) article has a chronological account of all Data Farming activities since its inception. It links to related blog posts. + +*** + +_Next:_ [_Predictoor DF_](predictoordf/) + +_Back:_ [_Docs main_](../../) diff --git a/archive/data-farming/apys/README.md b/archive/data-farming/apys/README.md new file mode 100644 index 00000000..7884c934 --- /dev/null +++ b/archive/data-farming/apys/README.md @@ -0,0 +1,2 @@ +# APYs + diff --git a/archive/data-farming/apys/estimated-apy-vs-time.md b/archive/data-farming/apys/estimated-apy-vs-time.md new file mode 100644 index 00000000..f57ce99d --- /dev/null +++ b/archive/data-farming/apys/estimated-apy-vs-time.md @@ -0,0 +1,2 @@ +# Estimated APY vs Time + diff --git a/archive/data-farming/apys/guide-to-estimating-apy.md b/archive/data-farming/apys/guide-to-estimating-apy.md new file mode 100644 index 00000000..1e09d1ba --- /dev/null +++ b/archive/data-farming/apys/guide-to-estimating-apy.md @@ -0,0 +1,2 @@ +# Guide to Estimating APY + diff --git a/archive/data-farming/claim-rewards.md b/archive/data-farming/claim-rewards.md new file mode 100644 index 00000000..3622172c --- /dev/null +++ b/archive/data-farming/claim-rewards.md @@ -0,0 +1,2 @@ +# Claim Rewards + diff --git a/archive/data-farming/faq.md b/archive/data-farming/faq.md new file mode 100644 index 00000000..52fe8f64 --- /dev/null +++ b/archive/data-farming/faq.md @@ -0,0 +1,71 @@ +--- +description: Frequently Asked Questions about Data Farming +--- + +# FAQ + +## Staking and Risk + +
+ +What does "staking" mean in an Ocean context? + +Its precise meaning depends on the DF stream. + +* Predictoor DF: put OCEAN into a prediction transaction + +
+ +
+ +Are there any risks associated with DF? + +As with any system, inherent risks exist. We try to minimize them, as follows. + +* Predictoor DF: you stake a small amount of OCEAN in each epoch (eg every 5min). If issues arise, you can get out quickly. + +
+ +
+ +Is there any impermanent loss (IL) in my staking? + +No. IL is typically associated with providing liquidity to decentralized exchange or pools. There are no pools involved in any of the DF streams \[1]. + +
+ +## Rewards Payout + +
+ +What APYs can I expect? + +For Predictoor DF, it varies a lot based on your prediction accuracy, and more. + +
+ +
+ +Can the DF rewards change during a given week? + +No. At the beginning of a new DF round, rules are laid out, either implicitly if no change from the previous round, or explicitly in a blog post if there are new rules. + +Caveat: it’s "no" at least in theory! Sometimes there may be tweaks if there is community consensus or a bug. + +
+ +
+ +Where do I learn more about Predictoor DF? + +In its [docs page](predictoordf/). + +
+ +Congrats! You've completed reading Data Farming docs. + +_Next: Jump to_ [_DF main_](./)_._ + +_Or: Jump to_ [_Docs main_](../../) _and click on your interest._ + +_Back:_ [_Predictoor DF Guide_](predictoordf/predictoordf-guide.md) diff --git a/archive/data-farming/passive-df-and-veocean/README.md b/archive/data-farming/passive-df-and-veocean/README.md new file mode 100644 index 00000000..82b24b47 --- /dev/null +++ b/archive/data-farming/passive-df-and-veocean/README.md @@ -0,0 +1,2 @@ +# Passive DF (and veOCEAN) + diff --git a/archive/data-farming/passive-df-and-veocean/guide-to-passive-df.md b/archive/data-farming/passive-df-and-veocean/guide-to-passive-df.md new file mode 100644 index 00000000..cdc92534 --- /dev/null +++ b/archive/data-farming/passive-df-and-veocean/guide-to-passive-df.md @@ -0,0 +1,2 @@ +# Guide to Passive DF + diff --git a/archive/data-farming/passive-df-and-veocean/liquid-staking.md b/archive/data-farming/passive-df-and-veocean/liquid-staking.md new file mode 100644 index 00000000..156cc211 --- /dev/null +++ b/archive/data-farming/passive-df-and-veocean/liquid-staking.md @@ -0,0 +1,2 @@ +# Liquid Staking + diff --git a/archive/data-farming/predictoordf/README.md b/archive/data-farming/predictoordf/README.md new file mode 100644 index 00000000..b482e576 --- /dev/null +++ b/archive/data-farming/predictoordf/README.md @@ -0,0 +1,55 @@ +--- +description: Baseline sales for predictoors +--- + +# Predictoor DF + +
+ +**This page** is about Predictoor DF, and [this page](predictoordf-guide.md) is a guide. + +## Predictoor DF Overview + +**Predictoor DF** is a DF stream that amplifies predictoors’ earnings, via extra sales to Ocean Predictoor data feeds. + +Predictoor DF has 37,500 OCEAN weekly rewards (ongoing) and 20,000 ROSE weekly rewards (throughout 2024). + +### Introduction + +[**Ocean Predictoor**](../../../predictoor.md) data feeds predict whether BTC, ETH etc will rise or fall 5min or 1h into the future. These feeds are crowdsourced by “predictoors”: people running AI-powered prediction bots. + +[**Data Farming (DF)**](../) is Ocean’s incentive program, that rewards OCEAN to people who lock OCEAN or do active DF activities. + +You should be familiar with both Predictoor and DF before reading on. + +### Predictoor DF Timing + +Predictoor DF started counting on Nov 9, 2023, at the beginning of Data Farming Round 63 (DF63). It runs indefinitely. + +### Predictoor DF Rewards + +Predictoor DF has two components: [OCEAN](https://oceanprotocol.com/about-us/ocean-token) rewards and [Oasis ROSE](https://www.coingecko.com/en/coins/oasis-network) rewards. + +#### OCEAN Rewards + +* A special “DF buyer” bot purchases Predictoor feeds. It started operating on Nov 9, 2023. Every day, it spends 1/7 of the weekly Predictoor OCEAN budget for another 24h subscription. It spends an equal amount per feed. (Currently there are feeds: 10 x 5min, 10 x 1h.) +* The OCEAN comes from the Ocean DF budget, and specifically, the Active DF budget. + +#### ROSE Rewards + +* Payout happens on Mondays, 4 days after the end of the DF round. +* ⚠️ To be counted for ROSE rewards of a given DF round, you must claim your OCEAN rewards for that DF round. See [Predictoor DF user guide](predictoordf-guide.md). +* Payout for a given predictoor is pro-rata to the net earnings of that predictoor over that DF round, specifically (total sales $ to the predictoor) minus (predictoor stake slashed due to being wrong). +* The ROSE comes from a generous contribution of[ Oasis Protocol Foundation](https://oasisprotocol.org/) 👪🙏. + +### How to Earn $ Via Predictoor DF + +**Running a predictoor bot will automatically make you eligible for Predictoor DF rewards.** + +The [Predictoor DF user guide](predictoordf-guide.md) tells how to get started as a predictoor, and how to claim rewards. + +*** + +_Next:_ [_Predictoor DF Guide_](predictoordf-guide.md) + +_Back:_ [_DF Main_](../) diff --git a/archive/data-farming/predictoordf/predictoordf-guide.md b/archive/data-farming/predictoordf/predictoordf-guide.md new file mode 100644 index 00000000..056ef07c --- /dev/null +++ b/archive/data-farming/predictoordf/predictoordf-guide.md @@ -0,0 +1,32 @@ +--- +description: How to earn $ via predictoor DF +--- + +# Guide to Predictoor DF + +
+ +In Predictoor DF (and Predictoor proper), you run prediction bots to earn continuously. This guide describes how to become eligible for OCEAN rewards and claim them; and the same for Oasis ROSE rewards. And of course first thing you need to do is become a predictoor. + +## How to become a predictoor + +* Play with the dapp: http://predictoor.ai +* Then go through "How to earn as a Predictoor" in [Predictoor docs](https://docs.predictoor.ai) +* Or, go straight to the [quickstart README](https://github.com/oceanprotocol/pdr-backend/blob/main/READMEs/predictoor.md) :) 🏎️ + +## On OCEAN Rewards in Predictoor DF + +* **Duration:** ongoing +* **To be eligible:** predictoors are automatically eligible 🧘 +* **To claim:** recall that the OCEAN rewards act as more sales coming to you (as a predictoor). So you claim your OCEAN from sales in the usual way, by running the OCEAN payout script. See the [payout README](https://github.com/oceanprotocol/pdr-backend/blob/main/READMEs/payout.md) for specific instructions. + +## On ROSE rewards in Predictoor DF + +* ⚠️ **To be eligible** for a given DF round: you MUST run [OCEAN payout script](https://github.com/oceanprotocol/pdr-backend/blob/main/READMEs/payout.md) <= 4 days after the round ends, i.e. between Thu 00:00 UTC & Sun 11:59 PM UTC +* **To claim:** See the [payout README](https://github.com/oceanprotocol/pdr-backend/blob/main/READMEs/payout.md) for specific instructions. + +*** + +_Next: Jump to_ [_DF FAQ_](../faq.md)_._ + +_Back:_ [_Predictoor DF_](./) diff --git a/archive/data-farming/reward-schedule.md b/archive/data-farming/reward-schedule.md new file mode 100644 index 00000000..d0815ce4 --- /dev/null +++ b/archive/data-farming/reward-schedule.md @@ -0,0 +1,2 @@ +# Reward Schedule + diff --git a/archive/data-farming/volume-df/README.md b/archive/data-farming/volume-df/README.md new file mode 100644 index 00000000..23b36c6e --- /dev/null +++ b/archive/data-farming/volume-df/README.md @@ -0,0 +1,2 @@ +# Volume DF + diff --git a/archive/data-farming/volume-df/delegation-in-volume-df.md b/archive/data-farming/volume-df/delegation-in-volume-df.md new file mode 100644 index 00000000..986164dd --- /dev/null +++ b/archive/data-farming/volume-df/delegation-in-volume-df.md @@ -0,0 +1,2 @@ +# Delegation in Volume DF + diff --git a/archive/data-farming/volume-df/guide-to-volume-df.md b/archive/data-farming/volume-df/guide-to-volume-df.md new file mode 100644 index 00000000..1055c35e --- /dev/null +++ b/archive/data-farming/volume-df/guide-to-volume-df.md @@ -0,0 +1,2 @@ +# Guide to Volume DF + diff --git a/contribute/README.md b/contribute/README.md index 026fac79..6e53c0f7 100644 --- a/contribute/README.md +++ b/contribute/README.md @@ -1,13 +1,12 @@ --- -title: Ways to Contribute description: Help develop Ocean Protocol software like a superhero -cover: ../.gitbook/assets/cover/contribute_banner.png +cover: ../.gitbook/assets/contribute_banner.png coverY: 0 --- # 🤝 Contribute -
+
### Report a bug 🐞 @@ -20,13 +19,12 @@ First, make sure that you search existing open + closed issues + PRs to see if y Follow the steps below to properly document your bug! Paste the screenshots into your GitHub issue. {% embed url="https://app.arcade.software/share/fUNrK6z2eurJ2C1ty2OG" fullWidth="false" %} -{% endembed %} ### Report vulnerabilities For all the super sleuths out there, you may be able to earn a bounty for reporting vulnerabilities in sensitive parts of the code. Check out this page on [Immunify](https://immunefi.com/bounty/oceanprotocol/) for the latest bug bounties available. You can also responsibly disclose flaws by emailing us at [security@oceanprotocol.com](mailto:security@oceanprotocol.com). -

Did you find a glitch in the code matrix?

+

Did you find a glitch in the code matrix?

### Suggest a new feature 🤔💭 @@ -74,5 +72,4 @@ The docs repo can always be improved. If you found a mistake or have an improvem Do you REALLY love building on Ocean Protocol? Consider joining us full-time! Our openings are listed at [https://github.com/oceanprotocol/jobs](https://github.com/oceanprotocol/jobs). - Scroll a bit further, and at this page's footer, you'll find the social media links that allow you to join the Ocean community or engage in direct chats with us. 😊 Toodles! diff --git a/contribute/code-of-conduct.md b/contribute/code-of-conduct.md index cbf44393..0d66627e 100644 --- a/contribute/code-of-conduct.md +++ b/contribute/code-of-conduct.md @@ -1,5 +1,4 @@ --- -title: Contributor Code of Conduct description: Be excellent to each other. --- @@ -27,6 +26,4 @@ This Code of Conduct applies both within project spaces and in public spaces whe Instances of abusive, harassing, or otherwise unacceptable behavior directed at yourself or another community member may be reported by contacting a project maintainer at [conduct@oceanprotocol.com](mailto:conduct@oceanprotocol.com). All complaints will be reviewed and investigated and will result in a response that is appropriate to the circumstances. Maintainers are obligated to maintain confidentiality with regard to the reporter of an incident. - - This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.3.0, available at [contributor-covenant.org/version/1/3/0/](http://contributor-covenant.org/version/1/3/0/) diff --git a/contribute/legal-reqs.md b/contribute/legal-reqs.md index dad74504..4cbda682 100644 --- a/contribute/legal-reqs.md +++ b/contribute/legal-reqs.md @@ -1,48 +1,49 @@ --- -title: Legal Requirements when Contributing Code -description: How to make sure your code contributions can be included in the Ocean Protocol codebase. +description: >- + How to make sure your code contributions can be included in the Ocean Protocol + codebase. --- -## Ocean Protocol Software Licensing +# Legal Requirements + +### Ocean Protocol Software Licensing All Ocean Protocol code (software) is licensed under an [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0.html). This page describes the Ocean Protocol policy to ensure that all contributions to the Ocean Protocol code are also licensed under the Apache 2.0 license (and that the contributor has the right to license it as such). If you are: -- contributing code to complete a _currently-open_ [Ocean Protocol bounty](https://gitcoin.co/explorer?network=mainnet&idx_status=open&keywords=oceanprotocol&order_by=-web3_created&org=oceanprotocol) or -- a _current_ employee of BigchainDB GmbH +* contributing code to complete a _currently-open_ [Ocean Protocol bounty](https://gitcoin.co/explorer?network=mainnet\&idx\_status=open\&keywords=oceanprotocol\&order\_by=-web3\_created\&org=oceanprotocol) or +* a _current_ employee of BigchainDB GmbH then there is nothing extra for you to do: licensing is already handled. Otherwise you are an "external contributor" and you must do the following: -1. Make sure that every file you modified or created contains a copyright notice comment like the following (at the top of the file): +1. Make sure that every file you modified or created contains a copyright notice comment like the following (at the top of the file): - ```text - # Copyright Ocean Protocol contributors - # SPDX-License-Identifier: Apache-2.0 - ``` + ``` + # Copyright Ocean Protocol contributors + # SPDX-License-Identifier: Apache-2.0 + ``` - - If a copyright notice is not present, then add one. - - If the first line of the file is a line beginning with `#!` (e.g. `#!/usr/bin/python3`) then leave that as the first line and add the copyright notice afterwards. - - If a copyright notice is present but it says something like `Copyright 2023 Ocean Protocol Foundation` then please change it to say the above. - - Make sure you're using the correct syntax for comments (which varies from language to language). The example shown above is for a Python file. + * If a copyright notice is not present, then add one. + * If the first line of the file is a line beginning with `#!` (e.g. `#!/usr/bin/python3`) then leave that as the first line and add the copyright notice afterwards. + * If a copyright notice is present but it says something like `Copyright 2023 Ocean Protocol Foundation` then please change it to say the above. + * Make sure you're using the correct syntax for comments (which varies from language to language). The example shown above is for a Python file. +2. Read the [Developer Certificate of Origin, Version 1.1](https://developercertificate.org/). +3. You will be asked to include a Signed-off-by line in all your commit messages. (Instructions are given in the next step.) Make sure you understand that including a Signed-off-by line in your commits certifies that you can make the statements in the Developer Certificate of Origin. If you have questions about this, then please [ask on Discord](https://discord.gg/TnXjkR5) or elsewhere. Do not continue until you fully understand. +4. Make sure that all your commit messages include a Signed-off-by line of the form: -1. Read the [Developer Certificate of Origin, Version 1.1](https://developercertificate.org/). -1. You will be asked to include a Signed-off-by line in all your commit messages. (Instructions are given in the next step.) Make sure you understand that including a Signed-off-by line in your commits certifies that you can make the statements in the Developer Certificate of Origin. If you have questions about this, then please [ask on Discord](https://discord.gg/TnXjkR5) or elsewhere. Do not continue until you fully understand. -1. Make sure that all your commit messages include a Signed-off-by line of the form: + ``` + Signed-off-by: Random J Developer + ``` - ```text - Signed-off-by: Random J Developer - ``` + with your real name and your real email address. Sorry, no pseudonyms or anonymous contributions. Tip: You can tell Git to include a Signed-off-by line in a commit message by using `git commit --signoff` or `git commit -s`. - with your real name and your real email address. Sorry, no pseudonyms or anonymous contributions. Tip: You can tell Git to include a Signed-off-by line in a commit message by using `git commit --signoff` or `git commit -s`. +### Credits -## Credits +The Developer Certificate of Origin was developed by the Linux community and has since been adopted by other projects, including many under the Linux Foundation umbrella (e.g. Hyperledger Fabric). The process described above (with the Signed-off-by line in Git commits) is also based on [the process used by the Linux community](https://github.com/torvalds/linux/blob/master/Documentation/process/submitting-patches.rst#11-sign-your-work---the-developers-certificate-of-origin). -The Developer Certificate of Origin was developed by the Linux community and has since been adopted by other projects, including many under the Linux Foundation umbrella (e.g. Hyperledger Fabric). -The process described above (with the Signed-off-by line in Git commits) is also based on [the process used by the Linux community](https://github.com/torvalds/linux/blob/master/Documentation/process/submitting-patches.rst#11-sign-your-work---the-developers-certificate-of-origin). - -## The Future +### The Future In the future, the Ocean Protocol Foundation will dissolve and the policy will probably change to work more like the Linux Kernel, where _every_ contributor must include a Signed-off-by line in all Git commits. diff --git a/contribute/projects-using-ocean.md b/contribute/projects-using-ocean.md index ef5a8cb0..31040299 100644 --- a/contribute/projects-using-ocean.md +++ b/contribute/projects-using-ocean.md @@ -1,11 +1,10 @@ --- -title: Collaborators description: We are so proud of the companies that use Ocean Protocol tools! --- # Collaborators -
+
From startups to full enterprises, we have so many collaborators using Ocean tech. Curious who's working with Ocean tools? Check out the up-to-date list of collaborators on the [Ecosystem page](https://oceanprotocol.com/ecosystem). diff --git a/data-scientists/README.md b/data-scientists/README.md index 4109f6ee..29d7bf7b 100644 --- a/data-scientists/README.md +++ b/data-scientists/README.md @@ -1,35 +1,36 @@ --- description: Earn $, track data & compute provenance, and get more data -cover: ../.gitbook/assets/cover/data_scientists_banner.png +cover: ../.gitbook/assets/data_scientists_banner.png coverY: 0 --- -# 📊 Data Science +# 📊 Data Scientists ### How does Ocean benefit data scientists? It offers three main benefits: -- **Earn.** You can earn $ by doing crypto price predictions via [Predictoor](../predictoor/README.md), by curating data in [Data Farming](../data-farming/README.md), competing in a [data challenge](join-a-data-challenge.md), and by selling data & models. -- **More Data.** Use [Compute-to-Data](../developers/compute-to-data/README.md) to access private data to run your AI modeling algorithms against, data which was previously inaccessible. Browse [Ocean Market](https://market.oceanprotocol.com) and other Ocean-powered markets to find more data to improve your AI models. -- **Provenance.** The acts of publishing data, purchasing data, and consuming data are all recorded on the blockchain to make a tamper-proof audit trail. Know where your AI training data came from! + +* **Earn.** You can earn $ by doing crypto price predictions via [Predictoor](../predictoor.md), by curating data in [Data Farming](../archive/data-farming/), competing in a [data challenge](join-a-data-challenge.md), and by selling data & models. +* **More Data.** Use [Compute-to-Data](../developers/compute-to-data/) to access private data to run your AI modeling algorithms against, data which was previously inaccessible. Browse [Ocean Market](https://market.oceanprotocol.com) and other Ocean-powered markets to find more data to improve your AI models. +* **Provenance.** The acts of publishing data, purchasing data, and consuming data are all recorded on the blockchain to make a tamper-proof audit trail. Know where your AI training data came from! ### How do data scientists start using Ocean? Here are the most relevant Ocean tools to work with: -- The **[ocean.py](ocean.py/README.md)** library is built for the key environment of data scientists: Python. It can simply be imported alongside other Python data science tools like numpy, matplotlib, scikit-learn and tensorflow. You can use it to publish & sell data assets, buy assets, transfer ownership, and more. -- Predictoor's **[pdr-backend repo](https://github.com/oceanprotocol/pdr-backend)** has Python-based tools to run bots for crypto prediction or trading. -- **[Compete in a data challenge](join-a-data-challenge.md)**, or [sponsor one](sponsor-a-data-challenge.md). - +* The [**ocean.py**](ocean.py/) library is built for the key environment of data scientists: Python. It can simply be imported alongside other Python data science tools like numpy, matplotlib, scikit-learn and tensorflow. You can use it to publish & sell data assets, buy assets, transfer ownership, and more. +* Predictoor's [**pdr-backend repo**](https://github.com/oceanprotocol/pdr-backend) has Python-based tools to run bots for crypto prediction or trading. +* [**Compete in a data challenge**](join-a-data-challenge.md), or [sponsor one](sponsor-a-data-challenge.md). ### Are there mental models for earning $ in data? Yes. This section has two other pages which elaborate: -- [The Data Value Creation Loop](the-data-value-creation-loop.md) lays out the life cycle of data, and how to focus towards high-value use cases. -- [What data is valuable](data-engineers.md) helps think about pricing data. + +* [The Data Value Creation Loop](the-data-value-creation-loop.md) lays out the life cycle of data, and how to focus towards high-value use cases. +* [What data is valuable](data-engineers.md) helps think about pricing data. ### Further resources The blog post ["How Ocean Can Benefit Data Scientists"](https://blog.oceanprotocol.com/how-ocean-can-benefit-data-scientists-7e502e5f1a5f) elaborates further on the benefits of more data, provenance, and earning. -
+
diff --git a/data-scientists/data-engineers.md b/data-scientists/data-engineers.md index e9552324..cf5c8092 100644 --- a/data-scientists/data-engineers.md +++ b/data-scientists/data-engineers.md @@ -4,7 +4,7 @@ description: How to research where supply meets demand... 💰🧑‍🏫 # What data is valuable? -

When you sell the right data at the right price to meet demand.

+

When you sell the right data at the right price to meet demand.

### Simple Truths diff --git a/data-scientists/join-a-data-challenge.md b/data-scientists/join-a-data-challenge.md index de8f9b79..47afbc4d 100644 --- a/data-scientists/join-a-data-challenge.md +++ b/data-scientists/join-a-data-challenge.md @@ -6,7 +6,7 @@ description: >- # Join a Data Challenge -

Bring on the data challenges.

+

Bring on the data challenges.

Hone your skills, work on real business problems, and earn sweet dosh along the way. diff --git a/data-scientists/ocean.py/README.md b/data-scientists/ocean.py/README.md index 3997e6d4..27058215 100644 --- a/data-scientists/ocean.py/README.md +++ b/data-scientists/ocean.py/README.md @@ -1,12 +1,10 @@ --- -description: >- - Python library to privately & securely publish, exchange, and consume - data. +description: Python library to privately & securely publish, exchange, and consume data. --- # Ocean.py -[Ocean.py](https://github.com/oceanprotocol/ocean.py) helps data scientists earn $ from their AI models, track provenance of data & compute, and get more data. (More details [here](../../data-scientists/README.md).) +[Ocean.py](https://github.com/oceanprotocol/ocean.py) helps data scientists earn $ from their AI models, track provenance of data & compute, and get more data. (More details [here](../).) Ocean.py makes these tasks easy: @@ -16,7 +14,7 @@ Ocean.py makes these tasks easy: As a Python library, Ocean.py is built for the key environment of data scientists. It that can simply be imported alongside other Python data science tools like numpy, matplotlib, scikit-learn and tensorflow. -
+
### Quickstart 🚀 @@ -24,8 +22,8 @@ Follow these steps in sequence to ramp into Ocean. 1. [Install Ocean](install.md) 📥 2. Setup 🛠️ - - [Remote ](remote-setup.md)(Win, MacOS, Linux) - - or [Local ](local-setup.md)(Linux only) + * [Remote ](remote-setup.md)(Win, MacOS, Linux) + * or [Local ](local-setup.md)(Linux only) 3. [Publish asset](publish-flow.md), post for free / for sale, dispense it / buy it, and [consume ](consume-flow.md)it 4. Run algorithms through [Compute-to-Data flow](compute-flow.md) using Ocean environment. diff --git a/data-scientists/ocean.py/compute-flow.md b/data-scientists/ocean.py/compute-flow.md index 8246f86e..a5ab9e2d 100644 --- a/data-scientists/ocean.py/compute-flow.md +++ b/data-scientists/ocean.py/compute-flow.md @@ -42,7 +42,7 @@ print(f"DATA_ddo did = '{DATA_ddo.did}'") ``` {% endcode %} -To customise the privacy and accessibility of your compute service, add the `compute_values` argument to `create_url_asset` to set values according to the [DDO specs](/developers/identifiers.md). The function assumes the documented defaults. +To customise the privacy and accessibility of your compute service, add the `compute_values` argument to `create_url_asset` to set values according to the [DDO specs](../../developers/identifiers.md). The function assumes the documented defaults. ### 2. Alice publishes an algorithm @@ -204,7 +204,7 @@ This README has a simple ML algorithm. However, Ocean C2D is not limited to usag In the "publish algorithm" step, to replace the sample algorithm with another one: -* Use one of the standard [Ocean algo_dockers images](https://github.com/oceanprotocol/algo_dockers) or publish a custom docker image. +* Use one of the standard [Ocean algo\_dockers images](https://github.com/oceanprotocol/algo\_dockers) or publish a custom docker image. * Use the image name and tag in the `container` part of the algorithm metadata. * The image must have basic support for installing dependencies. E.g. "pip" for the case of Python. You can use other languages, of course. * More info is available on the [algorithms page](../../developers/compute-to-data/compute-to-data-algorithms.md) diff --git a/data-scientists/ocean.py/consume-flow.md b/data-scientists/ocean.py/consume-flow.md index 3c10daba..4ce55267 100644 --- a/data-scientists/ocean.py/consume-flow.md +++ b/data-scientists/ocean.py/consume-flow.md @@ -18,7 +18,7 @@ Below, we show four possible approaches: * C is when Alice wants to share access for free, to anyone * D is when Alice wants to sell access -
+
In the same Python console: @@ -101,4 +101,3 @@ The _beginning_ of the file should contain the following contents: -3.9286,0.0000,206.1783 ... ``` - diff --git a/data-scientists/ocean.py/datatoken-interface-tech-details.md b/data-scientists/ocean.py/datatoken-interface-tech-details.md index 4f088ad9..b4a5a2a6 100644 --- a/data-scientists/ocean.py/datatoken-interface-tech-details.md +++ b/data-scientists/ocean.py/datatoken-interface-tech-details.md @@ -29,7 +29,7 @@ Return value is a hex string which denotes the transaction hash of dispenser dep **Defined in** -[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL336C5-L377C18) +[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL336C5-L377C18)
@@ -103,7 +103,7 @@ Return value is a hex string which denotes the transaction hash of dispensed dat **Defined in** -[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL379C5-L400C18) +[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL379C5-L400C18)
@@ -147,9 +147,9 @@ It is implemented in `Datatoken2`, so it can be called within `Datatoken2` class **Parameters** * `consumer` - address of the consumer wallet that needs funding -* `service_index` - service index as int for identifying the service that you want to further call [`start_order`](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL169C5-L197C10). +* `service_index` - service index as int for identifying the service that you want to further call [`start_order`](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL169C5-L197C10). * `transaction_parameters` - is the configuration `dictionary` for that specific transaction. Usually for `development` we include just the `from` wallet, but for remote networks, you can provide gas fees, required confirmations for that block etc. -* `consume_market_fees` - [`TokenInfo` ](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#L31)object which contains the consume market fee amount, address & token address. If it is not explicitly specified, by default it has an empty `TokenInfo` object. +* `consume_market_fees` - [`TokenInfo` ](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#L31)object which contains the consume market fee amount, address & token address. If it is not explicitly specified, by default it has an empty `TokenInfo` object. **Returns** @@ -159,7 +159,7 @@ Return value is a hex string which denotes the transaction hash of dispensed dat **Defined in** -[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL439C5-L483C1) +[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL439C5-L483C1)
@@ -242,7 +242,7 @@ It is implemented in `DatatokenBase`, inherited by `Datatoken2`, so it can be ca **Defined in** -[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL402C1-L409C43) +[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL402C1-L409C43)
@@ -275,7 +275,7 @@ This wraps the smart contract method `Datatoken.createFixedRate()` with a simple * `rate` - how many base tokens does 1 datatoken cost? In wei or string * `base_token_addr` - e.g. OCEAN address -* `tx_dict` - is the configuration `dictionary` for that specific transaction. Usually for `development` we include just the `from` wallet, but for remote networks, you can provide gas fees, required confirmations for that block etc. +* `tx_dict` - is the configuration `dictionary` for that specific transaction. Usually for `development` we include just the `from` wallet, but for remote networks, you can provide gas fees, required confirmations for that block etc. **Optional parameters** @@ -292,7 +292,7 @@ This wraps the smart contract method `Datatoken.createFixedRate()` with a simple **Defined in** -[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL236C4-L310C1) +[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL236C4-L310C1)
@@ -366,9 +366,9 @@ It is implemented in `Datatoken` class and it is also inherited in `Datatoken2` **Parameters** * `consumer` - address of the consumer wallet that needs funding -* `service_index` - service index as int for identifying the service that you want to further call [`start_order`](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL169C5-L197C10). +* `service_index` - service index as int for identifying the service that you want to further call [`start_order`](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL169C5-L197C10). * `transaction_parameters` - is the configuration `dictionary` for that specific transaction. Usually for `development` we include just the `from` wallet, but for remote networks, you can provide gas fees, required confirmations for that block etc. -* `consume_market_fees` - [`TokenInfo` ](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#L31)object which contains the consume market fee amount, address & token address. If it is not explicitly specified, by default it has an empty `TokenInfo` object. +* `consume_market_fees` - [`TokenInfo` ](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#L31)object which contains the consume market fee amount, address & token address. If it is not explicitly specified, by default it has an empty `TokenInfo` object. **Returns** @@ -378,7 +378,7 @@ Return value is a hex string for transaction hash which denotes the proof of sta **Defined in** -[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL484C4-L518C10) +[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL484C4-L518C10)
@@ -440,7 +440,7 @@ It is implemented in `DatatokenBase`, inherited by `Datatoken2`, so it can be ca **Defined in** -[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL311C4-L322C25) +[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL311C4-L322C25)
@@ -479,7 +479,7 @@ It is implemented in Datatoken class and it is also inherited in Datatoken2 clas * `service_index` - service index as int for identifying the service that you want to apply `start_order`. * `provider_fees` - dictionary which includes provider fees generated when `initialize` endpoint from `Provider` was called. * `transaction_parameters` - is the configuration `dictionary` for that specific transaction. Usually for `development` we include just the `from` wallet, but for remote networks, you can provide gas fees, required confirmations for that block etc. -* `consume_market_fees` - [`TokenInfo` ](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#L31)object which contains the consume market fee amount, address & token address. If it is not explicitly specified, by default it has an empty `TokenInfo` object. +* `consume_market_fees` - [`TokenInfo` ](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#L31)object which contains the consume market fee amount, address & token address. If it is not explicitly specified, by default it has an empty `TokenInfo` object. **Returns** @@ -489,7 +489,7 @@ Return value is a hex string for transaction hash which denotes the proof of sta **Defined in** -[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL169C5-L197C10) +[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL169C5-L197C10)
@@ -551,7 +551,7 @@ Return value is a hex string for transaction hash which denotes the proof of reu **Defined in** -[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL199C5-L219C10) +[models/datatoken.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL199C5-L219C10)
diff --git a/data-scientists/ocean.py/install.md b/data-scientists/ocean.py/install.md index b8daf394..d4e5fdce 100644 --- a/data-scientists/ocean.py/install.md +++ b/data-scientists/ocean.py/install.md @@ -4,8 +4,7 @@ Let’s start interacting with the python library by firstly installing it & its From the adventurous `Python 3.8.5` all the way up to `Python 3.10.4`, ocean.py has got your back! 🚀 -While `ocean.py` can join you on your `Python 3.11` journey, a few manual tweaks may be required. But worry not, brave explorers, we've got all the juicy details for you below! 📚✨ -⚠️ Make sure that you have `autoconf`, `pkg-config` and `build-essential` or their equivalents installed on your host. +While `ocean.py` can join you on your `Python 3.11` journey, a few manual tweaks may be required. But worry not, brave explorers, we've got all the juicy details for you below! 📚✨ ⚠️ Make sure that you have `autoconf`, `pkg-config` and `build-essential` or their equivalents installed on your host. ### Installing ocean.py @@ -48,5 +47,3 @@ Issue: MacOS “Unsupported Architecture” ### Helpful resources Oh, buoy! 🌊🐙 When it comes to installation, ocean.py has you covered with a special README called ["install.md"](https://github.com/oceanprotocol/ocean.py/blob/main/READMEs/install.md). It's like a trusty guide that helps you navigate all the nitty-gritty details. So, let's dive in and ride the waves of installation together! 🏄‍♂️🌊 - - diff --git a/data-scientists/ocean.py/local-setup.md b/data-scientists/ocean.py/local-setup.md index 7381cbb3..404e58d4 100644 --- a/data-scientists/ocean.py/local-setup.md +++ b/data-scientists/ocean.py/local-setup.md @@ -24,8 +24,7 @@ So hoist the anchor, prepare your Docker crew, and let's embark on an exciting v Ocean `barge` runs ganache (local blockchain), Provider (data service), and Aquarius (metadata cache). -Barge helps you quickly become familiar with Ocean, because the local blockchain has low latency and no transaction fees.\ - +Barge helps you quickly become familiar with Ocean, because the local blockchain has low latency and no transaction fees.\\ In a new console: diff --git a/data-scientists/ocean.py/ocean-assets-tech-details.md b/data-scientists/ocean.py/ocean-assets-tech-details.md index a3ff32f4..e66cb028 100644 --- a/data-scientists/ocean.py/ocean-assets-tech-details.md +++ b/data-scientists/ocean.py/ocean-assets-tech-details.md @@ -31,7 +31,7 @@ A tuple which contains the data NFT, datatoken and the data asset. **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL178C1-L185C82) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL178C1-L185C82)
@@ -78,7 +78,7 @@ A tuple which contains the algorithm NFT, algorithm datatoken and the algorithm **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL146C4-L176C82) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL146C4-L176C82)
@@ -145,7 +145,7 @@ A tuple which contains the data NFT, datatoken and the data asset. **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL187C5-L198C82) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL187C5-L198C82)
@@ -194,7 +194,7 @@ A tuple which contains the data NFT, datatoken and the data asset. **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL200C5-L212C82) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL200C5-L212C82)
@@ -244,7 +244,7 @@ A tuple which contains the data NFT, datatoken and the data asset. **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL214C5-L229C1) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL214C5-L229C1)
@@ -302,7 +302,7 @@ A tuple which contains the data NFT, datatoken and the data asset. **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL259C5-L390C43) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL259C5-L390C43)
@@ -473,7 +473,7 @@ You can control this during `create()`: * To disable compression, use `ocean.assets.create(..., compress_flag=False)`. * To disable both, use `ocean.assetspy.create(..., encrypt_flag=False, compress_flag=False)`. -**Create **_**just**_** a data NFT** +**Create \_just**\_\*\* a data NFT\*\* Calling `create()` like above generates a data NFT, a datatoken for that NFT, and a ddo. This is the most common case. However, sometimes you may want _just_ the data NFT, e.g. if using a data NFT as a simple key-value store. Here's how: @@ -539,7 +539,7 @@ The updated DDO, or `None` if updated DDO not found in Aquarius. **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL392C5-L454C19) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL392C5-L454C19)
@@ -625,7 +625,7 @@ Returns DDO instance. **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL456C5-L458C43) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL456C5-L458C43)
@@ -657,7 +657,7 @@ A list of DDOs which have matches with the text provided as parameter. **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL460C4-L475C10) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL460C4-L475C10)
@@ -702,7 +702,7 @@ A list of DDOs which have matches with the query provided as parameter. **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL477C4-L490C10) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL477C4-L490C10)
@@ -756,7 +756,7 @@ The full path to the downloaded file as `string`. **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL492C5-L516C20) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL492C5-L516C20)
@@ -820,7 +820,7 @@ Return value is a hex string for transaction hash which denotes the proof of sta **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL518C5-L571C28) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL518C5-L571C28)
@@ -914,7 +914,7 @@ Return value is a tuple composed of list of datasets and algorithm data (if exis **Defined in** -[ocean/ocean_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/ocean/ocean_assets.py#LL573C5-L627C30) +[ocean/ocean\_assets.py](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/ocean/ocean\_assets.py#LL573C5-L627C30)
diff --git a/data-scientists/ocean.py/ocean-compute-tech-details.md b/data-scientists/ocean.py/ocean-compute-tech-details.md index 3792ef6c..7721a246 100644 --- a/data-scientists/ocean.py/ocean-compute-tech-details.md +++ b/data-scientists/ocean.py/ocean-compute-tech-details.md @@ -35,7 +35,7 @@ Returns a string type job ID. **Defined in** -[ocean/ocean_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean_compute.py#LL32C4-L70C33) +[ocean/ocean\_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean\_compute.py#LL32C4-L70C33)
@@ -108,7 +108,7 @@ A dictionary which contains the status for an existing compute job, keys are `(o **Defined in** -[ocean/ocean_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean_compute.py#LL72C5-L88C24) +[ocean/ocean\_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean\_compute.py#LL72C5-L88C24)
@@ -162,7 +162,7 @@ A dictionary wich contains the results/logs urls for an existing compute job, ke **Defined in** -[ocean/ocean_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean_compute.py#LL90C5-L106C22) +[ocean/ocean\_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean\_compute.py#LL90C5-L106C22)
@@ -216,7 +216,7 @@ A dictionary which includes the results/logs urls for an existing compute job, k **Defined in** -[ocean/ocean_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean_compute.py#LL108C5-L130C22) +[ocean/ocean\_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean\_compute.py#LL108C5-L130C22)
@@ -275,7 +275,7 @@ A dictionary which contains the status for the stopped compute job, keys are `(o **Defined in** -[ocean/ocean_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean_compute.py#LL132C5-L146C24) +[ocean/ocean\_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean\_compute.py#LL132C5-L146C24)
@@ -324,7 +324,7 @@ A list of objects containing information about each compute environment. For eac **Defined in** -[ocean/ocean_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean_compute.py#LL148C4-L150C84) +[ocean/ocean\_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean\_compute.py#LL148C4-L150C84)
@@ -363,7 +363,7 @@ A list of objects containing information about each compute environment. For eac **Defined in** -[ocean/ocean_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean_compute.py#LL152C5-L155C87) +[ocean/ocean\_compute.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean\_compute.py#LL152C5-L155C87)
diff --git a/data-scientists/ocean.py/publish-flow.md b/data-scientists/ocean.py/publish-flow.md index 4516b940..9879ff78 100644 --- a/data-scientists/ocean.py/publish-flow.md +++ b/data-scientists/ocean.py/publish-flow.md @@ -33,13 +33,13 @@ You've now published an Ocean asset! * [`datatoken`](../../developers/contracts/datatokens.md) for access by others (licensing) * [`ddo`](../../developers/ddo-specification.md) holding metadata -
+
### Appendix For more information regarding: Data NFT & Datatokens interfaces and how they are implemented in Solidity, we suggest to follow up this [article](../../developers/contracts/datanft-and-datatoken.md) and [contracts repo](https://github.com/oceanprotocol/contracts) from GitHub. -As you may want to explore more the DDO specs, structure & meaning, we invite you to consult [DDO Specification](../../developers/ddo-specification.md) section. +As you may want to explore more the DDO specs, structure & meaning, we invite you to consult [DDO Specification](../../developers/ddo-specification.md) section. #### Publishing Alternatives @@ -85,9 +85,9 @@ The DDO is stored on-chain. It's encrypted and compressed by default. Therefore You can control this during `create()`: -* To disable encryption, use [`ocean.assets.create(..., encrypt_flag=False)`](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean_assets.py#L425). -* To disable compression, use [`ocean.assets.create(..., compress_flag=False)`](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean_assets.py#L426). -* To disable both, use [`ocean.assetspy.create(..., encrypt_flag=False, compress_flag=False)`](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean_assets.py#LL425C8-L426C46). +* To disable encryption, use [`ocean.assets.create(..., encrypt_flag=False)`](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean\_assets.py#L425). +* To disable compression, use [`ocean.assets.create(..., compress_flag=False)`](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean\_assets.py#L426). +* To disable both, use [`ocean.assetspy.create(..., encrypt_flag=False, compress_flag=False)`](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean\_assets.py#LL425C8-L426C46). #### Create a data NFT @@ -113,7 +113,7 @@ If you call `create()` after this, you can pass in an argument `deployed_datatok Ocean Assets allows you to bundle several common scenarios as a single transaction, thus lowering gas fees. -Any of the `ocean.assets.create__asset()` functions can also take an optional parameter that describes a bundled [pricing schema](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean_lib/models/datatoken.py#LL199C5-L219C10) (Dispenser or Fixed Rate Exchange). +Any of the `ocean.assets.create__asset()` functions can also take an optional parameter that describes a bundled [pricing schema](https://github.com/oceanprotocol/ocean.py/blob/4aa12afd8a933d64bc2ed68d1e5359d0b9ae62f9/ocean\_lib/models/datatoken.py#LL199C5-L219C10) (Dispenser or Fixed Rate Exchange). Here is an example involving an exchange: @@ -130,4 +130,3 @@ from ocean_lib.models.fixed_rate_exchange import ExchangeArguments assert len(datatoken.get_exchanges()) == 1 ``` {% endcode %} - diff --git a/data-scientists/ocean.py/remote-setup.md b/data-scientists/ocean.py/remote-setup.md index 78bed4de..6af26c69 100644 --- a/data-scientists/ocean.py/remote-setup.md +++ b/data-scientists/ocean.py/remote-setup.md @@ -23,8 +23,7 @@ Let's go! #### 1.1 Supported networks -All [Ocean chain deployments](https://docs.oceanprotocol.com/discover/networks) (Eth mainnet, Polygon, etc) are supported. -For any supported network, use the RPC URL of your choice when passing it to the ocean config object. +All [Ocean chain deployments](https://docs.oceanprotocol.com/discover/networks) (Eth mainnet, Polygon, etc) are supported. For any supported network, use the RPC URL of your choice when passing it to the ocean config object. #### 1.2 RPCs and Infura @@ -73,7 +72,6 @@ To get free (test) ETH on Sepolia: 2. Request funds for ADDRESS1 3. Request funds for ADDRESS2 - ### 4. Get (test) OCEAN on Sepolia [OCEAN](https://oceanprotocol.com/token) can be used as a data payment token, and locked into veOCEAN for Data Farming / curation. The READMEs show how to use OCEAN in both cases. diff --git a/data-scientists/ocean.py/technical-details.md b/data-scientists/ocean.py/technical-details.md index 47fd81b6..caf872e8 100644 --- a/data-scientists/ocean.py/technical-details.md +++ b/data-scientists/ocean.py/technical-details.md @@ -4,7 +4,7 @@ description: Technical details about most used ocean.py functions # Ocean Instance Tech Details -At the beginning of most flows, we create an `ocean` object, which is an instance of class [`Ocean`](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py). It exposes useful information, including the following: +At the beginning of most flows, we create an `ocean` object, which is an instance of class [`Ocean`](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py). It exposes useful information, including the following: * properties for config & OCEAN * contract objects retrieval @@ -30,7 +30,7 @@ In order to initialize a Ocean object, you must provide `config_dict` which is a **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#L43) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#L43)
@@ -112,7 +112,7 @@ Configuration fields as dictionary. **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#LL265C1-L268C32) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#LL265C1-L268C32)
@@ -129,7 +129,7 @@ Configuration fields as dictionary. ### OCEAN Address -* **ocean_address**(`self`) -> `str` +* **ocean\_address**(`self`) -> `str` It is a helper method for retrieving the OCEAN's token address.\ It can be called only by Ocean object and returns the address as a `string`. @@ -142,7 +142,7 @@ OCEAN address for that network. **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#LL100C1-L103C52) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#LL100C1-L103C52)
@@ -155,7 +155,7 @@ OCEAN address for that network. return get_ocean_token_address(self.config) ``` -[`get_ocean_token_address`](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/util.py#LL31C1-L38C89) function is an utilitary function which gets the address from `address.json` file +[`get_ocean_token_address`](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/util.py#LL31C1-L38C89) function is an utilitary function which gets the address from `address.json` file {% code overflow="wrap" %} ```python @@ -174,7 +174,7 @@ def get_ocean_token_address(config_dict: dict) -> str: ### OCEAN Token Object -* **ocean_token**(`self`) -> `DatatokenBase` +* **ocean\_token**(`self`) -> `DatatokenBase` * **OCEAN**(`self`) -> `DatatokenBase` as alias for the above option It is a helper method for retrieving the OCEAN token object (Datatoken class).\ @@ -188,7 +188,7 @@ OCEAN token as `DatatokenBase` object. **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#LL105C1-L113C32) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#LL105C1-L113C32)
@@ -223,7 +223,7 @@ Data NFT Factory contract object which access all the functionalities available **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#LL117C1-L120C80) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#LL117C1-L120C80)
@@ -256,7 +256,7 @@ Dispenser contract object which access all the functionalities available from sm **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#LL122C1-L125C63) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#LL122C1-L125C63)
@@ -287,7 +287,7 @@ Fixed Rate Exchange contract object which access all the functionalities availab **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#LL127C1-L130C72) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#LL127C1-L130C72)
@@ -321,7 +321,7 @@ Data NFT object which access all the functionalities available for ERC721 templa **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#LL139C5-L145C51) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#LL139C5-L145C51)
@@ -358,7 +358,7 @@ Datatoken object which access all the functionalities available for ERC20 templa **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#LL147C5-L153C67) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#LL147C5-L153C67)
@@ -398,7 +398,7 @@ List of all the orders on that `datatoken` done by the specified `user`. **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#LL157C5-L173C23) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#LL157C5-L173C23)
@@ -426,8 +426,6 @@ List of all the orders on that `datatoken` done by the specified `user`. ``` {% endcode %} - -
### Provider Fees @@ -450,7 +448,7 @@ A dictionary which contains the following keys (`providerFeeAddress`, `providerF **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#LL177C4-L189C1) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#LL177C4-L189C1)
@@ -497,7 +495,7 @@ A dictionary which contains the following keys (`providerFeeAddress`, `providerF **Defined in** -[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean_lib/ocean/ocean.py#LL190C4-L210C1) +[ocean/ocean.py](https://github.com/oceanprotocol/ocean.py/blob/main/ocean\_lib/ocean/ocean.py#LL190C4-L210C1)
diff --git a/data-scientists/sponsor-a-data-challenge.md b/data-scientists/sponsor-a-data-challenge.md index e44f1457..dcda3630 100644 --- a/data-scientists/sponsor-a-data-challenge.md +++ b/data-scientists/sponsor-a-data-challenge.md @@ -4,7 +4,7 @@ description: Sponsor a data challenge to crowdsource solutions for your business # Sponsor a Data Challenge -

Make the game, set the rules.

+

Make the game, set the rules.

Hosting a data challenge is a fun way to engage data scientists and machine learning experts around the world to **solve your real business problems**. Incentivize participants to **build products using your data**, **explain insights in your data**, or **provide useful data predictions** for your business. Plus, it's a whole lot cheaper than hiring an in-house data science team! @@ -14,4 +14,4 @@ Hosting a data challenge is a fun way to engage data scientists and machine lear 2. Curate the dataset(s) that participants will use for the challenge. The key to hosting a good data challenge is to provide an exciting and through dataset that participants can use to build their solutions. Do your research to understand what data is available, whether it be free from an API, available for download, require any transformations, etc. For the first challenge, it is alright if the created dataset is a static file. However, it is best to ensure there is a path to making the data available from a dynamic endpoint so that entires can eventually be applied to current, real-world use cases. 3. Decide how the judging process will occur. This includes how long to make review period, how to score submissions, and how to decide any prizes will be divided among participants 4. Work with Ocean Protocol to gather participants for your data challenge. Creating blog posts and hosting Twitter Spaces is a good way to spread the word about your data challenge. -5. To submit your application, kindly visit [here](https://docs.google.com/forms/d/e/1FAIpQLSdBcTJepav-6k5PmIGwX5e4gpQgGb_82UxzwvCBhilVc59bXQ/viewform), and for more information, head over to this [page](https://oceanprotocol.com/earn/data-challenges/). +5. To submit your application, kindly visit [here](https://docs.google.com/forms/d/e/1FAIpQLSdBcTJepav-6k5PmIGwX5e4gpQgGb\_82UxzwvCBhilVc59bXQ/viewform), and for more information, head over to this [page](https://oceanprotocol.com/earn/data-challenges/). diff --git a/data-scientists/the-data-value-creation-loop.md b/data-scientists/the-data-value-creation-loop.md index 172dcfe1..2b6b6ea7 100644 --- a/data-scientists/the-data-value-creation-loop.md +++ b/data-scientists/the-data-value-creation-loop.md @@ -2,9 +2,9 @@ description: Thrive in the open data economy by closing the loop towards speed and value --- -# The Data Value-Creation Loop +# Data Value-Creation Loop -
+
### Motivation @@ -30,12 +30,12 @@ The next question is: Let’s go through the steps of the loop. -- At the top, the user gets data by buying it or spending $ to create it. -- Then, they build an AI model from the data. -- Then they make predictions. E.g. “ETH will rise in next 5 minutes” -- Then, they choose actions. E.g. “buy ETH”. -- In executing these actions, they data scientist (or org) will make $ on average. -- The $ earned is put back into buying more data, and other activities. And the loop repeats. +* At the top, the user gets data by buying it or spending $ to create it. +* Then, they build an AI model from the data. +* Then they make predictions. E.g. “ETH will rise in next 5 minutes” +* Then, they choose actions. E.g. “buy ETH”. +* In executing these actions, they data scientist (or org) will make $ on average. +* The $ earned is put back into buying more data, and other activities. And the loop repeats. In this loop, dapp builders can help their users make money; data scientists can earn directly; and crypto enthusiasts can catalyze the first two if incentivized properly (e.g. to curate valuable data). @@ -64,14 +64,13 @@ We analyzed dozens of possible verticals with according to these criteria. For a Here are some examples. -- **Small $, slow**. Traditional music is small $ and slow, because incumbents like Universal dominate by controlling the back catalogue. -- **Large $, slow**. Medicine is large $ but slow, due to the approval process. -Small $, fast. Decentralized music is fast but small $ (for now! Fingers crossed). +* **Small $, slow**. Traditional music is small $ and slow, because incumbents like Universal dominate by controlling the back catalogue. +* **Large $, slow**. Medicine is large $ but slow, due to the approval process. Small $, fast. Decentralized music is fast but small $ (for now! Fingers crossed). **We want: large $, fast.** Here are the standouts. -- **Decentralized Finance (DeFi)** is a great fit. One can loop at the speed of blocks (or faster), and trade volumes have serious $. -- **LLMs and modern AI** is close: one can loop quickly, and with the right application make $. The challenge is: what’s the right application? +* **Decentralized Finance (DeFi)** is a great fit. One can loop at the speed of blocks (or faster), and trade volumes have serious $. +* **LLMs and modern AI** is close: one can loop quickly, and with the right application make $. The challenge is: what’s the right application? ### Project Criteria @@ -80,8 +79,7 @@ We encourage you - as a builder - to choose projects that close the data value-c We follow our advice for internal projects too. Predictoor, Data Farming, and DeFi-oriented data challenges are standout examples. ### Summary + To sustain and thrive in the open data economy: make money! Do this by closing the data value-creation loop, in a vertical / opportunity where you can loop quickly and the $ opportunity is large. - - diff --git a/developers/README.md b/developers/README.md index 004f93a1..e33b16dc 100644 --- a/developers/README.md +++ b/developers/README.md @@ -1,43 +1,43 @@ --- -description: -cover: ../.gitbook/assets/cover/developer_banner.png +cover: ../.gitbook/assets/developer_banner.png coverY: 0 --- -# 👨💻 Developers +# 💻 Developers ## What can you build with Ocean? 1. **Token-gated dApps & REST APIs**: monetize by making your dApp or its REST API token-gated. [Here's how](https://github.com/oceanprotocol/token-gating-template). -1. **AI dApps**: monetize your AI dApp by token-gating on AI training data, feature vectors, models, or predictions. -1. **Data Markets**: build a decentralized data market. [Here's how](https://github.com/oceanprotocol/market) -1. **Private user profile data**: storing user profile data on your centralized server exposes you to liability. Instead, have it on-chain encrypted by the user's wallet, and just-in-time decrypt for the app. [Video](https://www.youtube.com/watch?v=xTfI8spLq1k&ab_channel=ParticleNetwork), [slides](https://docs.google.com/presentation/d/1_lkDVUkA0Rx1R7RpkaSeLkX3PeOBoMQyRhvxjwTvd6A/edit?usp=sharing). +2. **AI dApps**: monetize your AI dApp by token-gating on AI training data, feature vectors, models, or predictions. +3. **Data Markets**: build a decentralized data market. [Here's how](https://github.com/oceanprotocol/market) +4. **Private user profile data**: storing user profile data on your centralized server exposes you to liability. Instead, have it on-chain encrypted by the user's wallet, and just-in-time decrypt for the app. [Video](https://www.youtube.com/watch?v=xTfI8spLq1k\&ab\_channel=ParticleNetwork), [slides](https://docs.google.com/presentation/d/1\_lkDVUkA0Rx1R7RpkaSeLkX3PeOBoMQyRhvxjwTvd6A/edit?usp=sharing). Example live dapps: -- **Data Markets**: [Acentrik Market](https://market.acentrik.io/) for enterprises, and [Ocean Market](https://market.oceanprotocol.com) for general. -- **Token-gated dapps**: [Autobot](https://autobotocean.com/) for analytics, and [Ocean Waves](https://waves.oceanprotocol.com/) for music. -- **Token-gated feeds**: [Ocean Predictoor](https://predictoor.ai) for AI prediction feeds + +* **Data Markets**: [Acentrik Market](https://market.acentrik.io/) for enterprises, and [Ocean Market](https://market.oceanprotocol.com) for general. +* **Token-gated dapps**: [Autobot](https://autobotocean.com/) for analytics, and [Ocean Waves](https://waves.oceanprotocol.com/) for music. +* **Token-gated feeds**: [Ocean Predictoor](https://predictoor.ai) for AI prediction feeds ## How do developers start using Ocean? -- **App level: [Use an Ocean Template](https://oceanprotocol.com/templates)**. -- **Library level: [Use ocean.js](ocean.js/README.md)** is a library built for the key environment of dApp developers: JavaScript. Import it & use it your frontend or NodeJS. -- **Contract level: [Call Ocean contracts](contracts/README.md)** on Eth mainnet [or other chains](../discover/networks/README.md). +* **App level:** [**Use an Ocean Template**](https://oceanprotocol.com/templates). +* **Library level:** [**Use ocean.js**](ocean.js/) is a library built for the key environment of dApp developers: JavaScript. Import it & use it your frontend or NodeJS. +* **Contract level:** [**Call Ocean contracts**](contracts/) on Eth mainnet [or other chains](../discover/networks.md). ## Developer Docs Quick-links -- [Architecture](architecture.md) - blockchain/contracts layer, middleware, dapps -- Earning revenue: [code to get payment](contracts/revenue.md), [fractional $](fractional-ownership.md), [community $](community-monetization.md) -- Schemas: [Metadata](metadata.md), [identifiers/DIDs](identifiers.md), [identifier objects/DDOs](ddo-specification.md), [storage](storage.md), [fine-grained permissions](fg-permissions.md) -- Components: - - [Barge](barge/README.md) - local chain for testing - - [Ocean subgraph](subgraph/README.md) - grabbing event data from the chain - - [Ocean CLI](ocean-cli/README.md) - command-line interface - - [Compute-to-data](compute-to-data/README.md) - practical privacy approach - - [Aquarius](aquarius/README.md) - metadata cache - - [Provider](provider/README.md) - handshaking for access control -- [FAQ](dev-faq.md) +* [Architecture](architecture.md) - blockchain/contracts layer, middleware, dapps +* Earning revenue: [code to get payment](revenue.md), [fractional $](fractional-ownership.md), [community $](community-monetization.md) +* Schemas: [Metadata](metadata.md), [identifiers/DIDs](identifiers.md), [identifier objects/DDOs](ddo-specification.md), [storage](storage.md), [fine-grained permissions](fg-permissions.md) +* Components: + * [Barge](barge/) - local chain for testing + * [Ocean subgraph](subgraph/) - grabbing event data from the chain + * [Ocean CLI](ocean-cli/) - command-line interface + * [Compute-to-data](compute-to-data/) - practical privacy approach + * [Aquarius](aquarius/) - metadata cache + * [Provider](provider/) - handshaking for access control +* [FAQ](dev-faq.md) ----- +*** -_Next: [Architecture](architecture.md)_ +_Next:_ [_Architecture_](architecture.md) diff --git a/developers/aquarius/README.md b/developers/aquarius/README.md index 748d545e..260970a4 100644 --- a/developers/aquarius/README.md +++ b/developers/aquarius/README.md @@ -8,7 +8,7 @@ The core job of Aquarius is to continually look out for new metadata being creat Aquarius has its own interface (API) that allows you to easily query this metadata. With Aquarius, you don't need to do the time-consuming task of scanning the data chains yourself. It offers you a convenient shortcut to the information you need. It's ideal for when you need a search feature within your dApp. -

Aquarius high level overview

+

Aquarius high level overview

### What does Aquarius do? diff --git a/developers/aquarius/asset-requests.md b/developers/aquarius/asset-requests.md index 14708ed6..6167aed9 100644 --- a/developers/aquarius/asset-requests.md +++ b/developers/aquarius/asset-requests.md @@ -27,7 +27,7 @@ curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/api/aquariu #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const did = 'did:op:ce3f161fb98c64a2ded37fd34e25f28343f2c88d0c8205242df9c621770d4b3b' const response = await axios(`https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/ddo/${did}`) @@ -65,7 +65,7 @@ curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/api/aquariu #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const did = 'did:op:ce3f161fb98c64a2ded37fd34e25f28343f2c88d0c8205242df9c621770d4b3b' const response = await axios(`https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/metadata/${did}`) @@ -106,7 +106,7 @@ curl --location --request POST 'https://v4.aquarius.oceanprotocol.com/api/aquari #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const body = {didList : ["did:op:cd086344c275bc7c560e91d472be069a24921e73a2c3798fb2b8caadf8d245d6", "did:op:ce3f161fb98c64a2ded37fd34e25f28343f2c88d0c8205242df9c621770d4b3b"]} @@ -148,7 +148,7 @@ curl --location --request POST 'https://v4.aquarius.oceanprotocol.com/api/aquari #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const body = { "query": { "match_all": { } } } @@ -189,7 +189,7 @@ curl --location --request POST 'https://v4.aquarius.oceanprotocol.com/api/aquari #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const body = { @@ -263,7 +263,7 @@ curl --location --request POST 'https://v4.aquarius.oceanprotocol.com/api/aquari #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const body = { "transactionId": "0x945596edf2a26d127514a78ed94fea86b199e68e9bed8b6f6d6c8bb24e451f27", "logIndex": 0} @@ -272,4 +272,3 @@ console.log(response.status) console.log(response.data) ``` - diff --git a/developers/aquarius/chain-requests.md b/developers/aquarius/chain-requests.md index 2668536e..d0b761e6 100644 --- a/developers/aquarius/chain-requests.md +++ b/developers/aquarius/chain-requests.md @@ -33,7 +33,7 @@ curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/api/aquariu #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const response = await axios( 'https://v4.aquarius.oceanprotocol.com/api/aquarius/chains/list') @@ -70,7 +70,7 @@ curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/api/aquariu #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const chainId = 1 @@ -79,4 +79,3 @@ console.log(response.status) console.log(response.data) ``` - diff --git a/developers/aquarius/other-requests.md b/developers/aquarius/other-requests.md index 40d9eede..cd4dd226 100644 --- a/developers/aquarius/other-requests.md +++ b/developers/aquarius/other-requests.md @@ -31,7 +31,7 @@ curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/' #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const response = await axios( 'https://v4.aquarius.oceanprotocol.com/') @@ -40,8 +40,6 @@ console.log(response.data) ``` - - ### **Health** Retrieves the health status of the Aquarius service. @@ -61,7 +59,7 @@ curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/health' #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const response = await axios( 'https://v4.aquarius.oceanprotocol.com/health') @@ -89,7 +87,7 @@ curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/spec' #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const response = await axios( 'https://v4.aquarius.oceanprotocol.com/spec') @@ -97,4 +95,3 @@ console.log(response.status) console.log(response.data.info) ``` - diff --git a/developers/architecture.md b/developers/architecture.md index 865f5d02..bdec041c 100644 --- a/developers/architecture.md +++ b/developers/architecture.md @@ -6,13 +6,13 @@ description: Ocean Protocol Architecture Adventure! Embark on an exploration of the innovative realm of Ocean Protocol, where data flows seamlessly and AI achieves new heights. Dive into the intricately layered architecture that converges data and services, fostering a harmonious collaboration. Let us delve deep and uncover the profound design of Ocean Protocol.🐬 -

Overview of the Ocean Protocol Architecture

+

Overview of the Ocean Protocol Architecture

### Layer 1: The Foundational Blockchain Layer -At the core of Ocean Protocol lies the robust [Blockchain Layer](contracts/README.md). Powered by blockchain technology, this layer ensures secure and transparent transactions. It forms the bedrock of decentralized trust, where data providers and consumers come together to trade valuable assets. +At the core of Ocean Protocol lies the robust [Blockchain Layer](contracts/). Powered by blockchain technology, this layer ensures secure and transparent transactions. It forms the bedrock of decentralized trust, where data providers and consumers come together to trade valuable assets. -The [smart contracts](contracts/README.md) are deployed on the Ethereum mainnet and other compatible [networks](../discover/networks/README.md). The libraries encapsulate the calls to these smart contracts and provide features like publishing new assets, facilitating consumption, managing pricing, and much more. To explore the contracts in more depth, go ahead to the [contracts](contracts/README.md) section. +The [smart contracts](contracts/) are deployed on the Ethereum mainnet and other compatible [networks](../discover/networks.md). The libraries encapsulate the calls to these smart contracts and provide features like publishing new assets, facilitating consumption, managing pricing, and much more. To explore the contracts in more depth, go ahead to the [contracts](contracts/) section. ### Layer 2: The Empowering Middle Layer @@ -20,22 +20,22 @@ Above the smart contracts, you'll find essential [libraries](architecture.md#lib #### Libraries -These libraries include [Ocean.js](ocean.js/README.md), a JavaScript library, and [Ocean.py](../data-scientists/ocean.py/README.md), a Python library. They serve as powerful tools for developers, enabling integration and interaction with the protocol. +These libraries include [Ocean.js](ocean.js/), a JavaScript library, and [Ocean.py](../data-scientists/ocean.py/), a Python library. They serve as powerful tools for developers, enabling integration and interaction with the protocol. -1. [Ocean.js](ocean.js/README.md): Ocean.js is a JavaScript library that serves as a powerful tool for developers looking to integrate their applications with the Ocean Protocol ecosystem. Designed to facilitate interaction with the protocol, Ocean.js provides a comprehensive set of functionalities, including data tokenization, asset management, and smart contract interaction. Ocean.js simplifies the process of implementing data access controls, building dApps, and exploring data sets within a decentralized environment. -2. [Ocean.py](../data-scientists/ocean.py/README.md): Ocean.py is a Python library that empowers developers to integrate their applications with the Ocean Protocol ecosystem. With its rich set of functionalities, Ocean.py provides a comprehensive toolkit for interacting with the protocol. Developers and [data scientists](../data-scientists/README.md) can leverage Ocean.py to perform a wide range of tasks, including data tokenization, asset management, and smart contract interactions. This library serves as a bridge between Python and the decentralized world of Ocean Protocol, enabling you to harness the power of decentralized data. +1. [Ocean.js](ocean.js/): Ocean.js is a JavaScript library that serves as a powerful tool for developers looking to integrate their applications with the Ocean Protocol ecosystem. Designed to facilitate interaction with the protocol, Ocean.js provides a comprehensive set of functionalities, including data tokenization, asset management, and smart contract interaction. Ocean.js simplifies the process of implementing data access controls, building dApps, and exploring data sets within a decentralized environment. +2. [Ocean.py](../data-scientists/ocean.py/): Ocean.py is a Python library that empowers developers to integrate their applications with the Ocean Protocol ecosystem. With its rich set of functionalities, Ocean.py provides a comprehensive toolkit for interacting with the protocol. Developers and [data scientists](../data-scientists/) can leverage Ocean.py to perform a wide range of tasks, including data tokenization, asset management, and smart contract interactions. This library serves as a bridge between Python and the decentralized world of Ocean Protocol, enabling you to harness the power of decentralized data. #### Middleware components Additionally, in supporting the discovery process, middleware components come into play: -1. [Aquarius](aquarius/README.md): Aquarius acts as a metadata cache, enhancing search efficiency by caching on-chain data into Elasticsearch. By accelerating metadata retrieval, Aquarius enables faster and more efficient data discovery. -2. [Provider](provider/README.md): The Provider component plays a crucial role in facilitating various operations within the ecosystem. It assists in asset downloading, handles [DDO](ddo-specification.md) (Decentralized Data Object) encryption, and establishes communication with the operator-service for Compute-to-Data jobs. This ensures secure and streamlined interactions between different participants. -3. [Subgraph](subgraph/README.md): The Subgraph is an off-chain service that utilizes GraphQL to offer efficient access to information related to datatokens, users, and balances. By leveraging the subgraph, data retrieval becomes faster compared to an on-chain query. This enhances the overall performance and responsiveness of applications that rely on accessing this information. +1. [Aquarius](aquarius/): Aquarius acts as a metadata cache, enhancing search efficiency by caching on-chain data into Elasticsearch. By accelerating metadata retrieval, Aquarius enables faster and more efficient data discovery. +2. [Provider](provider/): The Provider component plays a crucial role in facilitating various operations within the ecosystem. It assists in asset downloading, handles [DDO](ddo-specification.md) (Decentralized Data Object) encryption, and establishes communication with the operator-service for Compute-to-Data jobs. This ensures secure and streamlined interactions between different participants. +3. [Subgraph](subgraph/): The Subgraph is an off-chain service that utilizes GraphQL to offer efficient access to information related to datatokens, users, and balances. By leveraging the subgraph, data retrieval becomes faster compared to an on-chain query. This enhances the overall performance and responsiveness of applications that rely on accessing this information. #### Compute-to-Data -[Compute-to-Data](compute-to-data/README.md) (C2D) represents a groundbreaking paradigm within the Ocean Protocol ecosystem, revolutionizing the way data is processed and analyzed. With C2D, the traditional approach of moving data to the computation is inverted, ensuring privacy and security. Instead, algorithms are securely transported to the data sources, enabling computation to be performed locally, without the need to expose sensitive data. This innovative framework facilitates collaborative data analysis while preserving data privacy, making it ideal for scenarios where data owners want to retain control over their valuable assets. C2D provides a powerful tool for enabling secure and privacy-preserving data analysis and encourages collaboration among data providers, ensuring the utilization of valuable data resources while maintaining strict privacy protocols. +[Compute-to-Data](compute-to-data/) (C2D) represents a groundbreaking paradigm within the Ocean Protocol ecosystem, revolutionizing the way data is processed and analyzed. With C2D, the traditional approach of moving data to the computation is inverted, ensuring privacy and security. Instead, algorithms are securely transported to the data sources, enabling computation to be performed locally, without the need to expose sensitive data. This innovative framework facilitates collaborative data analysis while preserving data privacy, making it ideal for scenarios where data owners want to retain control over their valuable assets. C2D provides a powerful tool for enabling secure and privacy-preserving data analysis and encourages collaboration among data providers, ensuring the utilization of valuable data resources while maintaining strict privacy protocols. ### Layer 3: The Accessible Application Layer @@ -45,6 +45,6 @@ Prominently featured within this layer is [Ocean Market](https://market.oceanpro ### Layer 4: The Friendly Wallets -At the top of the Ocean Protocol ecosystem, we find the esteemed [Web 3 Wallets](../user-guides/wallets/README.md), the gateway for users to immerse themselves in the world of decentralized data transactions. These wallets serve as trusted companions, enabling users to seamlessly transact within the ecosystem, purchase and sell data NFTs, and acquire valuable datatokens. For a more detailed exploration of Web 3 Wallets and their capabilities, you can refer to the [wallet intro page](../user-guides/wallets/README.md). +At the top of the Ocean Protocol ecosystem, we find the esteemed [Web 3 Wallets](../user-guides/wallets/), the gateway for users to immerse themselves in the world of decentralized data transactions. These wallets serve as trusted companions, enabling users to seamlessly transact within the ecosystem, purchase and sell data NFTs, and acquire valuable datatokens. For a more detailed exploration of Web 3 Wallets and their capabilities, you can refer to the [wallet intro page](../user-guides/wallets/). With the layers of the architecture clearly delineated, the stage is set for a comprehensive exploration of their underlying logic and intricate design. By examining each individually, we can gain a deeper understanding of their unique characteristics and functionalities. diff --git a/developers/barge/README.md b/developers/barge/README.md index 024462a3..00e20445 100644 --- a/developers/barge/README.md +++ b/developers/barge/README.md @@ -6,17 +6,16 @@ description: 🧑🏽‍💻 Local Development Environment for Ocean Protocol The Barge component of Ocean Protocol is a powerful tool designed to simplify the development process by providing Docker Compose files for running the full Ocean Protocol stack locally. It allows developers to set up and configure the various services required by Ocean Protocol for local testing and development purposes. -By using the Barge component, developers can spin up an environment that includes default versions of [Aquarius](../aquarius/README.md), [Provider](../provider/README.md), [Subgraph](../subgraph/README.md), and [Compute-to-Data](../compute-to-data/README.md). Additionally, it deploys all the [smart contracts](../contracts/README.md) from the ocean-contracts repository, ensuring a complete and functional local setup. Barge component also starts additional services like [Ganache](https://trufflesuite.com/ganache/), which is a local blockchain simulator used for smart contract development, and [Elasticsearch](https://www.elastic.co/elasticsearch/), a powerful search and analytics engine required by Aquarius for efficient indexing and querying of data sets. A full list of components and exposed ports is available in the GitHub [repository](https://github.com/oceanprotocol/barge#component-versions-and-exposed-ports). +By using the Barge component, developers can spin up an environment that includes default versions of [Aquarius](../aquarius/), [Provider](../provider/), [Subgraph](../subgraph/), and [Compute-to-Data](../compute-to-data/). Additionally, it deploys all the [smart contracts](../contracts/) from the ocean-contracts repository, ensuring a complete and functional local setup. Barge component also starts additional services like [Ganache](https://trufflesuite.com/ganache/), which is a local blockchain simulator used for smart contract development, and [Elasticsearch](https://www.elastic.co/elasticsearch/), a powerful search and analytics engine required by Aquarius for efficient indexing and querying of data sets. A full list of components and exposed ports is available in the GitHub [repository](https://github.com/oceanprotocol/barge#component-versions-and-exposed-ports). -

Load Ocean components locally by using Barge

+

Load Ocean components locally by using Barge

To explore all the available options and gain a deeper understanding of how to utilize the Barge component, you can visit the official GitHub [repository](https://github.com/oceanprotocol/barge#all-options) of Ocean Protocol. By utilizing the Barge component, developers gain the freedom to conduct experiments, customize, and fine-tune their local development environment, and offers the flexibility to override the Docker image tag associated with specific components. By setting the appropriate environment variable before executing the start\_ocean.sh command, developers can customize the versions of various components according to their requirements. For instance, developers can modify the: `AQUARIUS_VERSION`, `PROVIDER_VERSION`, `CONTRACTS_VERSION`, `RBAC_VERSION`, and `ELASTICSEARCH_VERSION` environment variables to specify the desired Docker image tags for each respective component. {% hint style="warning" %} -⚠️ We've got an important heads-up about Barge that we want to share with you. Brace yourself, because **Barge is not for the faint-hearted**! Here's the deal: the barge works great on Linux, but we need to be honest about its limitations on macOS. And, well, it doesn't work at all on Windows. Sorry, Windows users! - -To make things easier for everyone, we **strongly** recommend giving a try first on a **testnet**. Everything is configured already so it should be sufficient for your needs as well. Visit the [networks](../../discover/networks/README.md) page to have clarity on the available test networks. ⚠️ +⚠️ We've got an important heads-up about Barge that we want to share with you. Brace yourself, because **Barge is not for the faint-hearted**! Here's the deal: the barge works great on Linux, but we need to be honest about its limitations on macOS. And, well, it doesn't work at all on Windows. Sorry, Windows users! +To make things easier for everyone, we **strongly** recommend giving a try first on a **testnet**. Everything is configured already so it should be sufficient for your needs as well. Visit the [networks](../../discover/networks.md) page to have clarity on the available test networks. ⚠️ {% endhint %} diff --git a/developers/community-monetization.md b/developers/community-monetization.md index d374c6ff..018b356f 100644 --- a/developers/community-monetization.md +++ b/developers/community-monetization.md @@ -16,7 +16,7 @@ The datasets can take one of many shapes. For AI use cases, they may be raw data The first opportunity of data NFTs is the potential to sell the base intellectual property (IP) as an exclusive license to others. This is akin to EMI selling the Beatles’ master tapes to Universal Music: whoever owns the masters has the right to create records, CDs, and digital [sub-licenses](../discover/glossary.md). It’s the same for data: as the data NFT owner you have the **exclusive right** to create ERC20 datatoken sub-licenses. With Ocean, this right is now transferable as a data NFT. You can sell these data NFTs in **OpenSea** and other NFT marketplaces. -If you’re part of an established organization or a growing startup, you’ll also love the new role structure that comes with data NFTs. For example, you can specify a different address to collect [revenue](contracts/revenue.md) compared to the address that owns the NFT. It’s now possible to fully administer your project through these [roles](contracts/roles.md). +If you’re part of an established organization or a growing startup, you’ll also love the new role structure that comes with data NFTs. For example, you can specify a different address to collect [revenue](revenue.md) compared to the address that owns the NFT. It’s now possible to fully administer your project through these [roles](contracts/roles.md). **In short, if you have data to sell, then Ocean gives you superpowers to scale up and manage your data project. We hope this enables you to bring your data to new audiences and increase your profits.** @@ -24,15 +24,15 @@ If you’re part of an established organization or a growing startup, you’ll a We have always been super encouraging of anyone who wishes to build a dApp on top of Ocean or to fork Ocean Market and make their own data marketplace. And now, we have taken this to the next level and introduced more opportunities and even more fee customization options. -Ocean empowers dApp owners like yourself to have greater flexibility and control over the fees you can charge. This means you can tailor the fee structure to suit your specific needs and ensure the sustainability of your project. **The smart contracts enable you to collect a fee not only in consume, but also in fixed-rate exchange, also you can set the fee value.** For more detailed information regarding the fees, we invite you to visit the [fees](contracts/fees.md) page. +Ocean empowers dApp owners like yourself to have greater flexibility and control over the fees you can charge. This means you can tailor the fee structure to suit your specific needs and ensure the sustainability of your project. **The smart contracts enable you to collect a fee not only in consume, but also in fixed-rate exchange, also you can set the fee value.** For more detailed information regarding the fees, we invite you to visit the [fees](contracts/fees.md) page. Another new opportunity is using your own **ERC20** token in your dApp, where it’s used as the unit of exchange. This is fully supported and can be a great way to ensure the sustainability of your project. ### 3. Running Your Own Provider -Now this is a completely brand new opportunity to start generating [revenue](contracts/revenue.md) — running your own [provider](https://github.com/oceanprotocol/provider). We have been aware for a while now that many of you haven’t taken up the opportunity to run your own provider, and the reason seems obvious — there aren’t strong enough incentives to do so. +Now this is a completely brand new opportunity to start generating [revenue](revenue.md) — running your own [provider](https://github.com/oceanprotocol/provider). We have been aware for a while now that many of you haven’t taken up the opportunity to run your own provider, and the reason seems obvious — there aren’t strong enough incentives to do so. -For those that aren’t aware, [Ocean Provider](provider/README.md) is the proxy service that’s responsible for encrypting/ decrypting the data and streaming it to the consumer. It also validates if the user is allowed to access a particular data asset or service. It’s a crucial component in Ocean’s architecture. +For those that aren’t aware, [Ocean Provider](provider/) is the proxy service that’s responsible for encrypting/ decrypting the data and streaming it to the consumer. It also validates if the user is allowed to access a particular data asset or service. It’s a crucial component in Ocean’s architecture. Now, as mentioned above, fees are now paid to the individual or organization running the provider whenever a user downloads a data asset. The fees for downloading an asset are set as a cost per MB. In addition, there is also a provider fee that is paid whenever a compute job is run, which is set as a price per minute. @@ -40,8 +40,6 @@ The download and compute fees can both be set to any absolute amount and you can Additionally, provider fees are not limited to data consumption — they can also be used to charge for compute resources. So, for example, this means a provider can charge a fixed fee of 15 DAI to reserve compute resources for 1 hour. This has a huge upside for both the user and the provider host. From the user’s perspective, this means that they can now reserve a suitable amount of compute resources according to what they require. For the host of the provider, this presents another great opportunity to create an income. - -**Benefits to the Ocean Community** -We’re always looking to give back to the Ocean community and collecting fees is an important part of that. As mentioned above, the Ocean Protocol Foundation retains the ability to implement community fees on data consumption. The tokens that we receive will either be burned or invested in the community via projects that they are building. These investments will take place either through [Data Farming](../data-farming/README.md), [Ocean Shipyard](https://oceanprotocol.com/shipyard), or Ocean Ventures. +**Benefits to the Ocean Community** We’re always looking to give back to the Ocean community and collecting fees is an important part of that. As mentioned above, the Ocean Protocol Foundation retains the ability to implement community fees on data consumption. The tokens that we receive will either be burned or invested in the community via projects that they are building. These investments will take place either through [Data Farming](../archive/data-farming/), [Ocean Shipyard](https://oceanprotocol.com/shipyard), or Ocean Ventures. Projects that utilize OCEAN or H2O are subject to a 0.1% fee. In the case of projects that opt to use different tokens, an additional 0.1% fee will be applied. We want to support marketplaces that use other tokens but we also recognize that they don’t bring the same wider benefit to the Ocean community, so we feel this small additional fee is proportionate. diff --git a/developers/compute-to-data/README.md b/developers/compute-to-data/README.md index a2d1ef3a..be13d429 100644 --- a/developers/compute-to-data/README.md +++ b/developers/compute-to-data/README.md @@ -36,7 +36,7 @@ We suggest reading these guides to get an understanding of how compute-to-data w ### Developer Guides * [How to use compute to data with ocean.js](../ocean.js/cod-asset.md) -* [How to use compute to data with ocean.py](../../data-scientists/ocean.py/README.md) +* [How to use compute to data with ocean.py](../../data-scientists/ocean.py/) ### Infrastructure Deployment Guides diff --git a/developers/compute-to-data/compute-options.md b/developers/compute-to-data/compute-options.md index ec097945..803f7435 100644 --- a/developers/compute-to-data/compute-options.md +++ b/developers/compute-to-data/compute-options.md @@ -1,6 +1,4 @@ --- -title: Compute Options -section: developers description: Specification of compute options for assets in Ocean Protocol. --- diff --git a/developers/compute-to-data/compute-to-data-algorithms.md b/developers/compute-to-data/compute-to-data-algorithms.md index f9d14c64..91cf7050 100644 --- a/developers/compute-to-data/compute-to-data-algorithms.md +++ b/developers/compute-to-data/compute-to-data-algorithms.md @@ -1,10 +1,11 @@ --- -title: Writing Algorithms for Compute to Data description: >- Learn how to write algorithms for use in Ocean Protocol's Compute-to-Data feature. --- +# Writing Algorithms + In the Ocean Protocol stack, algorithms are recognized as distinct asset types, alongside datasets. When it comes to Compute-to-Data, an algorithm comprises the following key components: * **Algorithm Code**: The algorithm code refers to the specific instructions and logic that define the computational steps to be executed on a dataset. It encapsulates the algorithms' functionalities, calculations, and transformations. @@ -13,7 +14,7 @@ In the Ocean Protocol stack, algorithms are recognized as distinct asset types, Collectively, these components form the foundation of an algorithm in the context of Compute-to-Data. -### Environment +#### Environment When creating an algorithm asset in Ocean Protocol, it is essential to include the additional algorithm object in its metadata service. This algorithm object plays a crucial role in defining the Docker container environment associated with the algorithm. By specifying the necessary details within the algorithm object, such as the base image, tags, runtime configurations, and dependencies, the metadata service ensures that the algorithm asset is properly configured for execution within a Docker container. @@ -33,11 +34,11 @@ When creating an algorithm asset in Ocean Protocol, it is essential to include t Define your entry point according to your dependencies. E.g. if you have multiple versions of Python installed, use the appropriate command `python3.6 $ALGO`. -#### What Docker container should I use? +**What Docker container should I use?** There are plenty of Docker containers that work out of the box. However, if you have custom dependencies, you may want to configure your own Docker Image. To do so, create a Dockerfile with the appropriate instructions for dependency management and publish the container, e.g. using Dockerhub. -We also collect some [example images](https://github.com/oceanprotocol/algo_dockers) which you can also view in Dockerhub. +We also collect some [example images](https://github.com/oceanprotocol/algo\_dockers) which you can also view in Dockerhub. When publishing an algorithm through the [Ocean Market](https://market.oceanprotocol.com), these properties can be set via the publish UI. @@ -75,7 +76,7 @@ Run an algorithm written in Python, based on Python v3.9:
-#### Data Storage +**Data Storage** As part of a compute job, every algorithm runs in a K8s pod with these volumes mounted: @@ -88,7 +89,7 @@ As part of a compute job, every algorithm runs in a K8s pod with these volumes m Please note that when using local Providers or Metatata Caches, the ddos might not be correctly transferred into c2d, but inputs are still available. If your algorithm relies on contents from the DDO json structure, make sure to use a public Provider and Metadata Cache (Aquarius instance). -#### Environment variables available to algorithms +**Environment variables available to algorithms** For every algorithm pod, the Compute to Data environment provides the following environment variables: @@ -239,11 +240,11 @@ To run this algorithm, use the following `container` object:
-#### Algorithm Metadata +**Algorithm Metadata** An asset of type `algorithm` has additional attributes under `metadata.algorithm`, describing the algorithm and the Docker environment it is supposed to be run under. -
AttributeTypeDescription
languagestringLanguage used to implement the software.
versionstringVersion of the software preferably in SemVer notation. E.g. 1.0.0.
consumerParametersConsumer ParametersAn object that defines required consumer input before running the algorithm
container*containerObject describing the Docker container image. See below
+
AttributeTypeDescription
languagestringLanguage used to implement the software.
versionstringVersion of the software preferably in SemVer notation. E.g. 1.0.0.
consumerParametersConsumer ParametersAn object that defines required consumer input before running the algorithm
container*containerObject describing the Docker container image. See below
\* Required diff --git a/developers/compute-to-data/compute-to-data-architecture.md b/developers/compute-to-data/compute-to-data-architecture.md index d3db7d4b..75255003 100644 --- a/developers/compute-to-data/compute-to-data-architecture.md +++ b/developers/compute-to-data/compute-to-data-architecture.md @@ -1,5 +1,4 @@ --- -title: Compute-to-Data description: Architecture overview --- @@ -17,14 +16,14 @@ In the C2D workflow, the following steps are performed: 6. The results and logs generated by the algorithm are securely returned to the user. 7. The execution pod deletes the dataset, algorithm, and itself to ensure data privacy and security. -

Compute architecture overview

+

Compute architecture overview

The interaction between the Consumer and the Provider follows a specific workflow. To initiate the process, the Consumer contacts the Provider by invoking the `start(did, algorithm, additionalDIDs)` function with parameters such as the data identifier (DID), algorithm, and additional DIDs if required. Upon receiving this request, the Provider generates a unique job identifier (`XXXX`) and returns it to the Consumer. The Provider then assumes the responsibility of overseeing the remaining steps. Throughout the computation process, the Consumer has the ability to check the status of the job by making a query to the Provider using the `getJobDetails(XXXX)` function, providing the job identifier (`XXXX`) as a reference. {% hint style="info" %} -You have the option to initiate a compute job using one or more data assets. You can explore this functionality by utilizing the [ocean.py](../../data-scientists/ocean.py/README.md) and [ocean.js](../ocean.js/README.md) libraries. +You have the option to initiate a compute job using one or more data assets. You can explore this functionality by utilizing the [ocean.py](../../data-scientists/ocean.py/) and [ocean.js](../ocean.js/) libraries. {% endhint %} Now, let's delve into the inner workings of the Provider. Initially, it verifies whether the Consumer has sent the appropriate datatokens to gain access to the desired data. Once validated, the Provider interacts with the Operator-Service, a microservice responsible for coordinating the job execution. The Provider submits a request to the Operator-Service, which subsequently forwards the request to the Operator-Engine, the actual compute system in operation. @@ -46,9 +45,9 @@ Before the flow can begin, these pre-conditions must be met: ### Access Control using Ocean Provider -Similar to the `access service`, the `compute service` within Ocean Protocol relies on the [Ocean Provider](../provider/README.md), which is a crucial component managed by the asset Publishers. The role of the Ocean Provider is to facilitate interactions with users and handle the fundamental aspects of a Publisher's infrastructure, enabling seamless integration into the Ocean Protocol ecosystem. It serves as the primary interface for direct interaction with the infrastructure where the data is located. +Similar to the `access service`, the `compute service` within Ocean Protocol relies on the [Ocean Provider](../provider/), which is a crucial component managed by the asset Publishers. The role of the Ocean Provider is to facilitate interactions with users and handle the fundamental aspects of a Publisher's infrastructure, enabling seamless integration into the Ocean Protocol ecosystem. It serves as the primary interface for direct interaction with the infrastructure where the data is located. -The [Ocean Provider](../provider/README.md) encompasses the necessary credentials to establish secure and authorized interactions with the underlying infrastructure. Initially, this infrastructure may be hosted in cloud providers, although it also has the flexibility to extend to on-premise environments if required. By encompassing the necessary credentials, the Ocean Provider ensures the smooth and controlled access to the infrastructure, allowing Publishers to effectively leverage the compute service within Ocean Protocol. +The [Ocean Provider](../provider/) encompasses the necessary credentials to establish secure and authorized interactions with the underlying infrastructure. Initially, this infrastructure may be hosted in cloud providers, although it also has the flexibility to extend to on-premise environments if required. By encompassing the necessary credentials, the Ocean Provider ensures the smooth and controlled access to the infrastructure, allowing Publishers to effectively leverage the compute service within Ocean Protocol. ### Operator Service diff --git a/developers/compute-to-data/compute-to-data-datasets-algorithms.md b/developers/compute-to-data/compute-to-data-datasets-algorithms.md index 3d1a2f17..eeff4fc6 100644 --- a/developers/compute-to-data/compute-to-data-datasets-algorithms.md +++ b/developers/compute-to-data/compute-to-data-datasets-algorithms.md @@ -1,5 +1,4 @@ --- -title: Compute-to-Data description: Datasets and Algorithms --- diff --git a/developers/compute-to-data/compute-workflow.md b/developers/compute-to-data/compute-workflow.md index d97dcf67..81fee7f2 100644 --- a/developers/compute-to-data/compute-workflow.md +++ b/developers/compute-to-data/compute-workflow.md @@ -1,18 +1,19 @@ --- -title: Compute Workflow -section: developers description: Understanding the Compute-to-Data (C2D) Workflow --- -🚀 Now that we've introduced the key actors and provided an overview of the process, it's time to delve into the nitty-gritty of the compute workflow. We'll dissect each step, examining the inner workings of Compute-to-Data (C2D). From data selection to secure computations, we'll leave no stone unturned in this exploration. +# Workflow + +🚀 Now that we've introduced the key actors and provided an overview of the process, it's time to delve into the nitty-gritty of the compute workflow. We'll dissect each step, examining the inner workings of Compute-to-Data (C2D). From data selection to secure computations, we'll leave no stone unturned in this exploration. For visual clarity, here's an image of the workflow in action! 🖼️✨ -

Compute detailed flow diagram

+

Compute detailed flow diagram

Below, we'll outline each step in detail 📝 -## Starting a C2D Job +### Starting a C2D Job + 1. The consumer selects a preferred environment from the provider's list and initiates a compute-to-data job by choosing a dataset-algorithm pair. 2. The provider checks the orders on the blockchain. 3. If the orders for dataset, algorithm and compute environment fees are valid, the provider can start the compute flow. @@ -22,19 +23,22 @@ Below, we'll outline each step in detail 📝 7. It's the operator engine's responsibility to periodically check the operator service for the list of pending jobs. If there are available resources for a new job, the operator engine requests the job list from the operator service to decide whether to initiate a new job. 8. The operator service provides the list of jobs, and the operator engine is then prepared to start a new job. -## Creating the K8 Cluster and Allocating Job Volumes +### Creating the K8 Cluster and Allocating Job Volumes + 9. As a new job begins, volumes are created on the Kubernetes cluster, a task handled by the operator engine. 10. The cluster creates and allocates volumes for the job using the job volumes. 11. The volumes are created and allocated to the pod. 12. After volume creation and allocation, the operator engine starts "pod-configuration" as a new pod in the cluster. -## Loading Datasets and Algorithms +### Loading Datasets and Algorithms + 13. Pod-configuration requests the necessary dataset(s) and algorithm from their respective providers. 14. The files are downloaded by the pod configuration via the provider. 15. The pod configuration writes the datasets in the job volume. 16. The pod configuration informs the operator engine that it's ready to start the job. -## Running the Algorithm on Dataset(s) +### Running the Algorithm on Dataset(s) + 17. The operator engine launches the algorithm pod on the Kubernetes cluster, with volume containing dataset(s) and algorithm mounted. 18. Kubernetes runs the algorithm pod. 19. The Operator engine monitors the algorithm, stopping it if it exceeds the specified time limit based on the chosen environment. @@ -42,23 +46,25 @@ Below, we'll outline each step in detail 📝 21. The pod publishing uploads the results, logs, and admin logs to the output volume. 22. Upon successful upload, the operator engine receives notification from the pod publishing, allowing it to clean up the job volumes. -## Cleaning Up Volumes and Allocated Space +### Cleaning Up Volumes and Allocated Space + 23. The operator engine deletes the K8 volumes. 24. The Kubernetes cluster removes all used volumes. 25. Once volumes are deleted, the operator engine finalizes the job. 26. The operator engine informs the operator service that the job is completed, and the results are now accessible. -## Retrieving Job Details +### Retrieving Job Details + 27. The consumer retrieves job details by calling the provider's `get job details`. 28. The provider communicates with the operator service to fetch job details. 29. The operator service returns the job details to the provider. 30. With the job details, the provider can share them with the dataset consumer. -## Retrieving Job Results +### Retrieving Job Results + 31. Equipped with job details, the dataset consumer can retrieve the results from the recently executed job. 32. The provider engages the operator engine to access the job results. 33. As the operator service lacks access to this information, it uses the output volume to fetch the results. 34. The output volume provides the stored job results to the operator service. 35. The operator service shares the results with the provider. 36. The provider then delivers the results to the dataset consumer. - diff --git a/developers/contracts/README.md b/developers/contracts/README.md index 67637a51..23d4dd52 100644 --- a/developers/contracts/README.md +++ b/developers/contracts/README.md @@ -4,9 +4,9 @@ description: Empowering the Decentralised Data Economy # Contracts -The suite of smart contracts serve as the backbone of the decentralized data economy. These contracts facilitate secure, transparent, and efficient interactions among data providers, consumers, and ecosystem participants. +The suite of smart contracts serve as the backbone of the decentralized data economy. These contracts facilitate secure, transparent, and efficient interactions among data providers, consumers, and ecosystem participants. -The smart contracts have been deployed across multiple [networks](../../discover/networks/README.md) and are readily accessible through the GitHub [repository](https://github.com/oceanprotocol/contracts/tree/main/contracts). They introduced significant enhancements that encompass the following key **features**: +The smart contracts have been deployed across multiple [networks](../../discover/networks.md) and are readily accessible through the GitHub [repository](https://github.com/oceanprotocol/contracts/tree/main/contracts). They introduced significant enhancements that encompass the following key **features**: ### [**Data NFTs**](data-nfts.md) **for Enhanced Data IP Management** @@ -18,8 +18,7 @@ Ocean V4 effectively tackles these challenges by adopting **ERC721** **tokens** By utilizing ERC721 tokens, Ocean **grants data creators greater flexibility and control over licensing arrangements**. The introduction of data NFTs allows for the representation of [base IP](../../discover/glossary.md) and the creation of customized ERC20 datatoken contracts tailored to individual licensing requirements. -

Ocean Protocol Smart Contracts

- +

Ocean Protocol Smart Contracts

### [**Community monetization**](../community-monetization.md), to help the community create sustainable businesses. @@ -27,9 +26,9 @@ Ocean brings forth enhanced opportunities for dApp owners, creating a conducive With Ocean, dApp owners can unlock additional benefits. Firstly, the smart contracts empower dApp owners to collect [fees](fees.md) not only during **data consumption** but also through **fixed-rate exchanges**. This expanded revenue model allows owners to derive more value from the ecosystem. Moreover, in Ocean, the dApp operator has the authority to determine the fee value, providing them with **increased control** over their pricing strategies. -In addition to empowering dApp owners, Ocean facilitates the participation of third-party [Providers](../provider/README.md) who can offer compute services in exchange for a fee. This paves the way for the development of a diverse marketplace of Providers. This model supports both centralized trusted providers, where data publishers and consumers have established trust relationships, as well as trustless providers that leverage decentralization or other privacy-preserving mechanisms. +In addition to empowering dApp owners, Ocean facilitates the participation of third-party [Providers](../provider/) who can offer compute services in exchange for a fee. This paves the way for the development of a diverse marketplace of Providers. This model supports both centralized trusted providers, where data publishers and consumers have established trust relationships, as well as trustless providers that leverage decentralization or other privacy-preserving mechanisms. -By enabling a marketplace of [Providers](../provider/README.md), Ocean fosters competition, innovation, and choice. It creates an ecosystem where various providers can offer their compute services, catering to the diverse needs of data publishers and consumers. Whether based on trust or privacy-preserving mechanisms, this expansion in provider options enhances the overall functionality and accessibility of the Ocean Protocol ecosystem. +By enabling a marketplace of [Providers](../provider/), Ocean fosters competition, innovation, and choice. It creates an ecosystem where various providers can offer their compute services, catering to the diverse needs of data publishers and consumers. Whether based on trust or privacy-preserving mechanisms, this expansion in provider options enhances the overall functionality and accessibility of the Ocean Protocol ecosystem. Key features of the smart contracts: diff --git a/developers/contracts/data-nfts.md b/developers/contracts/data-nfts.md index 4fcde909..f3ed64c3 100644 --- a/developers/contracts/data-nfts.md +++ b/developers/contracts/data-nfts.md @@ -37,7 +37,7 @@ ERC721 tokens are non-fungible, and thus cannot be used for automatic price disc Our implementation has been built on top of the battle-tested [OpenZeppelin contract library](https://docs.openzeppelin.com/contracts/4.x/erc721). However, there are a bunch of interesting parts of the implementation that go a bit beyond an out-of-the-box NFT. The data NFTs can be easily managed from any NFT marketplace like [OpenSea](https://opensea.io/). -

Data NFT on Open Sea

+

Data NFT on Open Sea

Something else that we’re super excited about in the data NFTs is a cutting-edge standard called [ERC725](https://github.com/ERC725Alliance/erc725/blob/main/docs/ERC-725.md) being driven by our friends at [Lukso](https://lukso.network/about). The ERC725y feature enables the NFT owner (or a user with the “store updater” role) to input and update information in a key-value store. These values can be viewed externally by anyone. diff --git a/developers/contracts/datanft-and-datatoken.md b/developers/contracts/datanft-and-datatoken.md index e965203b..c5f468da 100644 --- a/developers/contracts/datanft-and-datatoken.md +++ b/developers/contracts/datanft-and-datatoken.md @@ -1,5 +1,4 @@ --- -title: Data NFTs and Datatokens description: >- In Ocean Protocol, ERC721 data NFTs represent holding the copyright/base IP of a data asset, and ERC20 datatokens represent licenses to access the assets. @@ -7,7 +6,7 @@ description: >- # Data NFTs and Datatokens -

Data NFTs and Datatokens

+

Data NFTs and Datatokens

In summary: A [**data NFT**](data-nfts.md) serves as a **representation of the copyright** or exclusive license for a data asset on the blockchain, known as the [**base IP**](../../discover/glossary.md). **Datatokens**, on the other hand, function as a crucial mechanism for **decentralized access** to data assets. @@ -26,7 +25,7 @@ For a more comprehensive exploration of intellectual property and its practical * In step 1, Alice **publishes** her dataset with Ocean: this means deploying an ERC721 data NFT contract (claiming copyright/base IP), then an ERC20 datatoken contract (license against base IP). Then Alice mints an ERC20 datatokens * In step 2, Alice **transfers** 1.0 of them to Bob's wallet; now he has a license to be able to download that dataset. -

Data NFT & Datatokens flow

+

Data NFT & Datatokens flow

What happends under the hood? 🤔 @@ -50,7 +49,7 @@ The smart contracts publishing includes the following steps: Below is a visual representation that illustrates the flow: -

Data NFT & Datatokens flow

+

Data NFT & Datatokens flow

We have some awesome hands-on experience when it comes to publishing a data NFT and minting datatokens. diff --git a/developers/contracts/datatoken-templates.md b/developers/contracts/datatoken-templates.md index daf988cf..f9c7acee 100644 --- a/developers/contracts/datatoken-templates.md +++ b/developers/contracts/datatoken-templates.md @@ -53,7 +53,7 @@ export interface DatatokenCreateParams { {% endtab %} {% tab title="Ocean.py" %} -To specify the datatoken template via ocean.py, you need to customize the [DatatokenArguments](https://github.com/oceanprotocol/ocean.py/blob/bad11fb3a4cb00be8bab8febf3173682e1c091fd/ocean_lib/models/datatoken_base.py#L64) with your desired template\_index. +To specify the datatoken template via ocean.py, you need to customize the [DatatokenArguments](https://github.com/oceanprotocol/ocean.py/blob/bad11fb3a4cb00be8bab8febf3173682e1c091fd/ocean\_lib/models/datatoken\_base.py#L64) with your desired template\_index. The default template used is 1. @@ -88,14 +88,11 @@ To identify the template used for a specific asset, you can easily retrieve this 1. Visit the network explorer where the asset was published. 2. Search for the datatoken address :mag: 3. Once you have located the datatoken address, click on the contract tab to access more details. -4. Within the contract details, we can identify and determine the template used for the asset. - - +4. Within the contract details, we can identify and determine the template used for the asset. We like making things easy :sunglasses: so here is an even easier way to retrieve the info for [this](https://market.oceanprotocol.com/asset/did:op:cd086344c275bc7c560e91d472be069a24921e73a2c3798fb2b8caadf8d245d6) asset published in the Ocean Market: {% embed url="https://app.arcade.software/share/wxBPSc42eSYUiawSY8rC" fullWidth="false" %} -{% endembed %} {% hint style="info" %} _It's important to note that Ocean Protocol may introduce new templates to support additional variations of data NFTs and datatokens in the future._ diff --git a/developers/contracts/fees.md b/developers/contracts/fees.md index 423abc0b..27f36d50 100644 --- a/developers/contracts/fees.md +++ b/developers/contracts/fees.md @@ -17,21 +17,19 @@ When you publish an asset on the Ocean marketplace, there are currently no charg However, if you're building a custom marketplace, you have the flexibility to include a publishing fee by adding an extra transaction in the publish flow. Depending on your marketplace's unique use case, you, as the marketplace owner, can decide whether or not to implement this fee. We believe in giving you the freedom to tailor your marketplace to your specific needs and preferences. -| Value in Ocean Market | Value in Other Markets | -| :---------------------: | :------------------------------: | -| 0% | Customizable in market config. | - +| Value in Ocean Market | Value in Other Markets | +| :-------------------: | :----------------------------: | +| 0% | Customizable in market config. | ### Swap fee -Swap fees are incurred as a transaction cost whenever someone exchanges one type of token for another within a [fixed rate exchange](./pricing-schemas.md#fixed-pricing). These exchanges can involve swapping a datatoken for a basetoken, like OCEAN or H2O, or vice versa, where basetoken is exchanged for datatoken. The specific value of the swap fee depends on the type of token being used in the exchange. +Swap fees are incurred as a transaction cost whenever someone exchanges one type of token for another within a [fixed rate exchange](pricing-schemas.md#fixed-pricing). These exchanges can involve swapping a datatoken for a basetoken, like OCEAN or H2O, or vice versa, where basetoken is exchanged for datatoken. The specific value of the swap fee depends on the type of token being used in the exchange. The swap fee values are set at the smart contract level and can only be modified by the Ocean Protocol Foundation (OPF). -| Value for OCCEAN or H2O | Value for other ERC20 tokens | -| :-----------------------: | :-----------------------------: | -| 0.1% | 0.2% | - +| Value for OCCEAN or H2O | Value for other ERC20 tokens | +| :---------------------: | :--------------------------: | +| 0.1% | 0.2% | ### Consume(aka. Order) fee @@ -45,7 +43,7 @@ When a user exchanges a [datatoken](datatokens.md) for the privilege of download 2. **Consume Market** Consumption Fee * A market can specify what fee it wants on the order function. 3. **Provider** Consumption Fees - * Defined by the [Provider](../provider/README.md) for any consumption. + * Defined by the [Provider](../provider/) for any consumption. * Expressed in: Address, Token, Amount (absolute), Timeout. * You can retrieve them when calling the initialize endpoint. * Eg: A provider can charge a fixed fee of 10 USDT per consume, irrespective of the pricing schema used (e.g., fixed rate with ETH, BTC, dispenser). @@ -93,28 +91,28 @@ Each of these fees plays a role in ensuring fair compensation and supporting the ### Provider fee -[Providers](../provider/README.md) facilitate data consumption, initiate compute jobs, encrypt and decrypt DDOs, and verify user access to specific data assets or services. +[Providers](../provider/) facilitate data consumption, initiate compute jobs, encrypt and decrypt DDOs, and verify user access to specific data assets or services. Provider fees serve as [compensation](../community-monetization.md#3.-running-your-own-provider) to the individuals or organizations operating their own provider instances when users request assets. -* Defined by the [Provider](../provider/README.md) for any consumption. +* Defined by the [Provider](../provider/) for any consumption. * Expressed in: Address, Token, Amount (absolute), Timeout. * You can retrieve them when calling the initialize endpoint. * These fees can be set as a **fixed amount** rather than a percentage. * Providers have the flexibility to specify the token in which the fees must be paid, which can differ from the token used in the consuming market. -* Provider fees can be utilized to charge for [computing](../compute-to-data/README.md) resources. Consumers can select the desired payment amount based on the compute resources required to execute an algorithm within the [Compute-to-Data](../compute-to-data/README.md) environment, aligning with their specific needs. +* Provider fees can be utilized to charge for [computing](../compute-to-data/) resources. Consumers can select the desired payment amount based on the compute resources required to execute an algorithm within the [Compute-to-Data](../compute-to-data/) environment, aligning with their specific needs. * Eg: A provider can charge a fixed fee of 10 USDT per consume, irrespective of the pricing schema used (e.g., fixed rate with ETH, BTC, dispenser). * Eg: A provider may impose a fixed fee of 15 DAI to reserve compute resources for 1 hour, enabling the initiation of compute jobs. These fees play a crucial role in incentivizing individuals and organizations to operate provider instances and charge consumers based on their resource usage. By doing so, they contribute to the growth and sustainability of the Ocean Protocol ecosystem. -| Type | OPF Provider | 3rd party Provider | -| ---------------------------------------------------------------------------- | :--------------------: | --------------------------------------------------------------------- | -| Token to charge the fee: `PROVIDER_FEE_TOKEN` | OCEAN |

Customizable by the Provider Owner.
E.g. USDC

| -| Download: `COST_PER_MB` | 0 | Customizable in the Provider `envvars`. | -|

Compute: COST_PER_MIN
Environment: 1 CPU, 60 secs max

| 0 | Customizable in the OperatorEngine `envvars`. | -|

Compute: COST_PER_MIN
Environment: 1 CPU, 1 hour max

| 1.0 OCEAN/min | Customizable in the OperatorEngine `envvars`. | -| Ocean Community | 0% of the Provider fee | 0% of the Provider fee. | +| Type | OPF Provider | 3rd party Provider | +| ---------------------------------------------------------------------------- | :--------------------: | -------------------------------------------------------------------- | +| Token to charge the fee: `PROVIDER_FEE_TOKEN` | OCEAN |

Customizable by the Provider Owner.
E.g. USDC

| +| Download: `COST_PER_MB` | 0 | Customizable in the Provider `envvars`. | +|

Compute: COST_PER_MIN
Environment: 1 CPU, 60 secs max

| 0 | Customizable in the OperatorEngine `envvars`. | +|

Compute: COST_PER_MIN
Environment: 1 CPU, 1 hour max

| 1.0 OCEAN/min | Customizable in the OperatorEngine `envvars`. | +| Ocean Community | 0% of the Provider fee | 0% of the Provider fee. | {% hint style="info" %} Stay up-to-date with the latest information! The values within the system are regularly updated. We recommend verifying the most recent values directly from the [contracts](https://github.com/oceanprotocol/contracts) and the [market](https://github.com/oceanprotocol/market). diff --git a/developers/contracts/pricing-schemas.md b/developers/contracts/pricing-schemas.md index 20875754..84245642 100644 --- a/developers/contracts/pricing-schemas.md +++ b/developers/contracts/pricing-schemas.md @@ -59,7 +59,7 @@ exchange_args = ExchangeArguments( Furthermore, Ocean Protocol recognizes that different data assets may have distinct pricing needs. That's why the platform supports multiple pricing schemas, allowing you to implement various pricing models for different datasets or use cases. This flexibility ensures that you can tailor the pricing strategy to each specific asset, maximizing its value and potential for monetization. -

Pricing Schemas

+

Pricing Schemas

### Fixed pricing @@ -181,8 +181,8 @@ function createNftWithErc20WithDispenser(
-To make the most of these pricing models, you can rely on user-friendly libraries such as [Ocean.js ](../ocean.js/README.md)and [Ocean.py](../../data-scientists/ocean.py/README.md), specifically developed for interacting with Ocean Protocol. +To make the most of these pricing models, you can rely on user-friendly libraries such as [Ocean.js ](../ocean.js/)and [Ocean.py](../../data-scientists/ocean.py/), specifically developed for interacting with Ocean Protocol. With Ocean.js, you can use the [createFRE() ](../ocean.js/publish.md)function to effortlessly deploy a data NFT (non-fungible token) and datatoken with a fixed-rate exchange pricing model. Similarly, in Ocean.py, the [create\_url\_asset()](../../data-scientists/ocean.py/publish-flow.md#create-an-asset--pricing-schema-simultaneously) function allows you to create an asset with fixed pricing. These libraries simplify the process of interacting with Ocean Protocol, managing pricing, and handling asset creation. -By taking advantage of Ocean Protocol's pricing options and leveraging the capabilities of [Ocean.js](../ocean.js/README.md) and [Ocean.py](../../data-scientists/ocean.py/README.md) (or by using the [Market](https://market.oceanprotocol.com)), you can effectively monetize your data assets while ensuring transparent and seamless access for data consumers. +By taking advantage of Ocean Protocol's pricing options and leveraging the capabilities of [Ocean.js](../ocean.js/) and [Ocean.py](../../data-scientists/ocean.py/) (or by using the [Market](https://market.oceanprotocol.com)), you can effectively monetize your data assets while ensuring transparent and seamless access for data consumers. diff --git a/developers/contracts/roles.md b/developers/contracts/roles.md index f5f2280e..9b2948e5 100644 --- a/developers/contracts/roles.md +++ b/developers/contracts/roles.md @@ -1,5 +1,4 @@ --- -title: Data NFTs and datatoken roles description: >- The permissions stored on chain in the contracts control the access to the data NFT (ERC721) and datatoken (ERC20) smart contract functions. @@ -17,13 +16,13 @@ The NFT owner is the owner of the base-IP and is therefore at the highest level. ## Roles-NFT level -

Roles at the data NFT level

+

Roles at the data NFT level

{% hint style="info" %} With the exception of the NFT owner role, all other roles can be assigned to multiple users. {% endhint %} -There are several methods available to assign roles and permissions. One option is to utilize the [ocean.py](../../data-scientists/ocean.py/README.md) and [ocean.js](../ocean.js/README.md) libraries that we provide. These libraries offer a streamlined approach for assigning roles and permissions programmatically. +There are several methods available to assign roles and permissions. One option is to utilize the [ocean.py](../../data-scientists/ocean.py/) and [ocean.js](../ocean.js/) libraries that we provide. These libraries offer a streamlined approach for assigning roles and permissions programmatically. Alternatively, for a more straightforward solution that doesn't require coding, you can utilize the network explorer of your asset's network. By accessing the network explorer, you can directly interact with the contracts associated with your asset. Below, we provide a few examples to help guide you through the process. @@ -63,7 +62,6 @@ function removeManager(address _managerAddress) external onlyNFTOwner { The **manager** can assign or revoke three main roles (**deployer, metadata updater, and store updater**). The manager is also able to call any other contract (ERC725X implementation). {% embed url="https://app.arcade.software/share/qC8QpkLsFIQk3NxPzB8p" fullWidth="false" %} -{% endembed %} ### Metadata Updater @@ -255,7 +253,7 @@ function addMultipleUsersToRoles(address[] memory addresses, RolesType[] memory ## Roles-datatokens level -

Roles at the datatokens level

+

Roles at the datatokens level

### Minter @@ -294,7 +292,6 @@ function removeMinter(address _minter) external onlyERC20Deployer {
{% embed url="https://app.arcade.software/share/OHlwsPbf29S1PLh03FM7" fullWidth="false" %} -{% endembed %} ### Fee Manager diff --git a/developers/ddo-specification.md b/developers/ddo-specification.md index e79eff93..4db052f0 100644 --- a/developers/ddo-specification.md +++ b/developers/ddo-specification.md @@ -1,7 +1,4 @@ --- -title: DDO -slug: /developers/ddo/ -section: developers description: >- Specification of decentralized identifiers for assets in Ocean Protocol using the DDO standard. @@ -233,7 +230,7 @@ Services define the access for an asset, and each service is represented by its An asset should have at least one service to be actually accessible and can have as many services which make sense for a specific use case. -
AttributeTypeDescription
id*stringUnique ID
type*stringType of service access, compute, wss etc.
namestringService friendly name
descriptionstringService description
datatokenAddress*stringDatatoken
serviceEndpoint*stringProvider URL (schema + host)
files*FilesEncrypted file.
timeout*numberDescribing how long the service can be used after consumption is initiated. A timeout of 0 represents no time limit. Expressed in seconds.
compute**ComputeIf service is of type compute, holds information about the compute-related privacy settings & resources.
consumerParametersConsumer ParametersAn object the defines required consumer input before consuming the asset
additionalInformationObjectStores additional information, this is customizable by publisher
+
AttributeTypeDescription
id*stringUnique ID
type*stringType of service access, compute, wss etc.
namestringService friendly name
descriptionstringService description
datatokenAddress*stringDatatoken
serviceEndpoint*stringProvider URL (schema + host)
files*FilesEncrypted file.
timeout*numberDescribing how long the service can be used after consumption is initiated. A timeout of 0 represents no time limit. Expressed in seconds.
compute**ComputeIf service is of type compute, holds information about the compute-related privacy settings & resources.
consumerParametersConsumer ParametersAn object the defines required consumer input before consuming the asset
additionalInformationObjectStores additional information, this is customizable by publisher
\* Required @@ -594,4 +591,3 @@ AlgorithmMetadata "1" --> "1..*" ConsumerParameters Service "1" --> "0..n" Compute Service "1" --> "0..n" ConsumerParameters ``` - diff --git a/developers/dev-faq.md b/developers/dev-faq.md index e5df201b..c043e607 100644 --- a/developers/dev-faq.md +++ b/developers/dev-faq.md @@ -1,14 +1,15 @@ --- -title: Development FAQ description: Frequently Asked Questions About Ocean Technology --- -## Development FAQ + +# Developer FAQ Have some questions about the Ocean Protocol tech stack? Hopefully, you'll find the answers here! If not then please don't hesitate to reach out to us on [discord](https://discord.gg/EdmenE7eTj) - there are no stupid questions!
+ The blockchain is public - does this mean that anyone can access my data? The blockchain being public means that transaction information is transparent and can be viewed by anyone. However, your data isn't directly accessible to the public. Ocean Protocol employs various mechanisms, including encryption and access control, to safeguard your data. Access to the data is determined by the permissions you set, ensuring that only authorized users can retrieve and work with your data. So, while blockchain transactions are public, your data remains protected and accessible only to those with proper authorization. @@ -16,30 +17,39 @@ The blockchain being public means that transaction information is transparent an
+ How are datatokens created? -Datatokens are created within the Ocean Protocol ecosystem when you tokenize a dataset(convert a dataset into a fungible token that can be traded). More details, on the [datatokens page](../developers/contracts/datatokens.md) +Datatokens are created within the Ocean Protocol ecosystem when you tokenize a dataset(convert a dataset into a fungible token that can be traded). More details, on the [datatokens page](contracts/datatokens.md) +
+ How does the datatoken creator make money? -You can generate revenue as a dataset publisher by selling datatokens to access your published dataset. For more details, please visit the [community monetization](https://docs.oceanprotocol.com/developers/community-monetization#1.-publishing-and-selling-data) page. +You can generate revenue as a dataset publisher by selling datatokens to access your published dataset. For more details, please visit the [community monetization](https://docs.oceanprotocol.com/developers/community-monetization#1.-publishing-and-selling-data) page. +
+ Where can I find information about the number of datatokens created and track their progress? -To access this data, some technical expertise is required. You can find this information at the subgraph level. In the documentation, we provide a few examples of how to retrieve this data using JavaScript. Feel free to give it a shot by visiting this [page](../developers/subgraph/list-datatokens). If it doesn't meet your requirements, don't hesitate to reach out to us on Discord. +To access this data, some technical expertise is required. You can find this information at the subgraph level. In the documentation, we provide a few examples of how to retrieve this data using JavaScript. Feel free to give it a shot by visiting this [page](https://github.com/oceanprotocol/docs/blob/node-release/developers/subgraph/list-datatokens/README.md). If it doesn't meet your requirements, don't hesitate to reach out to us on Discord. +
+ How can developers use Ocean technology to build their own data marketplaces? -You can fork Ocean Market and then make changes as you wish. Please see the [customising your market](../developers/build-a-marketplace/customising-your-market) page for details. +You can fork Ocean Market and then make changes as you wish. Please see the [customising your market](https://github.com/oceanprotocol/docs/blob/node-release/developers/build-a-marketplace/customising-your-market/README.md) page for details. +
+ Is there a trading platform or stock exchange that has successfully forked the Ocean marketplace codebase? Ocean technology is actively used by Daimler/Acentrik, deltaDAO/GAIA-X, and several other entities. You can find further details on the Ocean [ecosystem page](https://oceanprotocol.com/explore/ecosystem). @@ -47,35 +57,43 @@ Ocean technology is actively used by Daimler/Acentrik, deltaDAO/GAIA-X, and seve
+ What are the Ocean faucets and how can they be used? -An Ocean faucet is a site to get (fake) OCEAN for use on a given testnet. There's an Ocean faucet for each testnet that Ocean is deployed to. The [networks](../discover/networks/) page have more information. +An Ocean faucet is a site to get (fake) OCEAN for use on a given testnet. There's an Ocean faucet for each testnet that Ocean is deployed to. The [networks](../discover/networks.md) page have more information. +
+ How can I convert tokens from the BEP20 network to the ERC20 network? -Please follow this [tutorial](../discover/networks/bridges#bnb-smart-chain-bridge) to bridge from/to BNB Smart Chain. Please double-check the addresses and make sure you are using the right smart contracts. +Please follow this [tutorial](https://github.com/oceanprotocol/docs/blob/node-release/discover/networks/bridges/README.md#bnb-smart-chain-bridge) to bridge from/to BNB Smart Chain. Please double-check the addresses and make sure you are using the right smart contracts. +
+ How to bridge my mOcean back to Ocean? -Please follow this [tutorial](../discover/networks/bridges#polygon-ex-matic-bridge) to bridge to/from Polygon mainnet. Please double-check the addresses and make sure you are using the right smart contracts. +Please follow this [tutorial](https://github.com/oceanprotocol/docs/blob/node-release/discover/networks/bridges/README.md#polygon-ex-matic-bridge) to bridge to/from Polygon mainnet. Please double-check the addresses and make sure you are using the right smart contracts. +
-Is it possible to reverse engineer a dataset on Ocean by having access to both the algorithm and the output? + +Is it possible to reverse engineer a dataset on Ocean by having access to both the algorithm and the output? Not to our knowledge. But please, give it a shot and share the results with us 😄 PS: We offer good rewards 😇 +
+ If a dataset consists of 100 individuals' private data, does this solution allow each individual to maintain sovereign control over their data while still enabling algorithms to compute as if it were one dataset? -Yes. Each individual could publish their dataset themselves, to get a data NFT. From the data NFT, they can mint datatokens which are to access the data. They have sovereign control over this, as hold the keys to the data NFTs and datatokens, and have great flexibility in how to give others access. For example, they could send a datatoken to a DAO for the DAO can manage. Or they could grant datatoken-minting permissions to the DAO. The DAO could use this to assemble a dataset across 100 individuals. ⁣ -⁣ -Learn more about Data NFTs on the [Docs](../developers/contracts/data-nfts). -
\ No newline at end of file +Yes. Each individual could publish their dataset themselves, to get a data NFT. From the data NFT, they can mint datatokens which are to access the data. They have sovereign control over this, as hold the keys to the data NFTs and datatokens, and have great flexibility in how to give others access. For example, they could send a datatoken to a DAO for the DAO can manage. Or they could grant datatoken-minting permissions to the DAO. The DAO could use this to assemble a dataset across 100 individuals. ⁣ ⁣ Learn more about Data NFTs on the [Docs](https://github.com/oceanprotocol/docs/blob/node-release/developers/contracts/data-nfts/README.md). + +
diff --git a/developers/fg-permissions.md b/developers/fg-permissions.md index 5a0d3e42..85fce905 100644 --- a/developers/fg-permissions.md +++ b/developers/fg-permissions.md @@ -1,5 +1,4 @@ --- -title: Fine-Grained Permissions description: >- Fine-Grained Permissions Using Role-Based Access Control. You can Control who can publish, buy or browse data diff --git a/developers/fractional-ownership.md b/developers/fractional-ownership.md index 9112c8bc..3f463dbd 100644 --- a/developers/fractional-ownership.md +++ b/developers/fractional-ownership.md @@ -21,7 +21,7 @@ It's worth noting that for the second approach, one might consider utilizing pla These concerns are effectively addressed by employing a tokenized DAO, as previously described. -

DAO

+

DAO

Data DAOs present a fascinating use case whenever a group of individuals desires to collectively manage data or consolidate data for increased bargaining power. Such DAOs can take the form of unions, cooperatives, or trusts. diff --git a/developers/get-api-keys-for-blockchain-access.md b/developers/get-api-keys-for-blockchain-access.md index 2f2445ba..7b2572e6 100644 --- a/developers/get-api-keys-for-blockchain-access.md +++ b/developers/get-api-keys-for-blockchain-access.md @@ -16,6 +16,6 @@ Choose any API provider of your choice. Some of the commonly used are: * [Alchemy](https://www.alchemy.com/) * [Moralis](https://moralis.io/) -The supported networks are listed [here](../discover/networks/README.md). +The supported networks are listed [here](../discover/networks.md). Let's configure the remote setup for the mentioned components in the following sections. diff --git a/developers/identifiers.md b/developers/identifiers.md index 79001ec7..227d0007 100644 --- a/developers/identifiers.md +++ b/developers/identifiers.md @@ -24,7 +24,7 @@ did:op:0ebed8226ada17fde24b6bf2b95d27f8f05fcce09139ff5cec31f6d81a7cd2ea The part after `did:op:` is the ERC721 contract address(in checksum format) and the chainId (expressed to 10 decimal places). The following javascript example shows how to calculate the DID for the asset: -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const CryptoJS = require('crypto-js') const dataNftAddress = '0xa331155197F70e5e1EA0CC2A1f9ddB1D49A9C1De' diff --git a/developers/metadata.md b/developers/metadata.md index 5f4c6377..678f735f 100644 --- a/developers/metadata.md +++ b/developers/metadata.md @@ -6,7 +6,7 @@ description: How can you enhance data discovery? Metadata plays a **crucial role** in asset **discovery**, providing essential information such as **asset type, name, creation date, and licensing details**. Each data asset can have a [decentralized identifier (DID)](identifiers.md) that resolves to a DID document ([DDO](ddo-specification.md)) containing associated metadata. The DDO is essentially a collection of fields in a [JSON](https://www.json.org/) object. To understand working with OCEAN DIDs, you can refer to the [DID documentation](identifiers.md). For a more comprehensive understanding of metadata structure, the [DDO Specification](ddo-specification.md) documentation provides in-depth information. -

Data discovery

+

Data discovery

In general, any dApp within the Ocean ecosystem is required to store metadata for every listed dataset. The metadata is useful to determine which datasets are the most relevant. @@ -40,15 +40,15 @@ An _asset_ in Ocean represents a downloadable file, compute service, or similar. An _asset_ has a DID and DDO. The DDO should include metadata about the asset, and define access in at least one [service](ddo-specification.md#services). Only _owners_ or _delegated users_ can modify the DDO. -All DDOs are stored on-chain in encrypted form to be fully GDPR-compatible. A metadata cache like [_Aquarius_](aquarius/README.md) can help in reading, decrypting, and searching through encrypted DDO data from the chain. Because the file URLs are encrypted on top of the full DDO encryption, returning unencrypted DDOs e.g. via an API is safe to do as the file URLs will still stay encrypted. +All DDOs are stored on-chain in encrypted form to be fully GDPR-compatible. A metadata cache like [_Aquarius_](aquarius/) can help in reading, decrypting, and searching through encrypted DDO data from the chain. Because the file URLs are encrypted on top of the full DDO encryption, returning unencrypted DDOs e.g. via an API is safe to do as the file URLs will still stay encrypted. #### Publishing & Retrieving DDOs -The DDO is stored on-chain as part of the NFT contract and stored in encrypted form using the private key of the [_Provider_](provider/README.md). To resolve it, a metadata cache like [_Aquarius_](aquarius/README.md) must query the [Provider](provider/README.md) to decrypt the DDO. +The DDO is stored on-chain as part of the NFT contract and stored in encrypted form using the private key of the [_Provider_](provider/). To resolve it, a metadata cache like [_Aquarius_](aquarius/) must query the [Provider](provider/) to decrypt the DDO. Here is the flow: -

DDO Flow

+

DDO Flow

To set up the metadata for an asset, you'll need to call the [**setMetaData**](https://github.com/oceanprotocol/contracts/blob/9e29194d910f28a4f0ef17ce6dc8a70741f63309/contracts/templates/ERC721Template.sol#L247) function at the contract level. @@ -56,7 +56,7 @@ To set up the metadata for an asset, you'll need to call the [**setMetaData**](h * **\_metaDataDecryptorUrl** - You create the DDO and then the Provider encrypts it with its private key. Only that Provider can decrypt it. * **\_metaDataDecryptorAddress** - The decryptor address. * **flags** - Additional information to represent the state of the data. One of two values: 0 - plain text, 1 - compressed, 2 - encrypted. Used by Aquarius. -* **data -** The [DDO](ddo-specification.md) of the asset. You create the DDO as a JSON, send it to the [Provider](provider/README.md) that encrypts it, and then you set it up at the contract level. +* **data -** The [DDO](ddo-specification.md) of the asset. You create the DDO as a JSON, send it to the [Provider](provider/) that encrypts it, and then you set it up at the contract level. * **\_metaDataHash** - Hash of the clear data **generated before the encryption.** It is used by Provider to check the validity of the data after decryption. * **\_metadataProofs** - Array with signatures of entities who validated data (before the encryption). Pass an empty array if you don't have any. diff --git a/developers/ocean-cli/README.md b/developers/ocean-cli/README.md index 24c5db2a..b6e2bdd1 100644 --- a/developers/ocean-cli/README.md +++ b/developers/ocean-cli/README.md @@ -1,22 +1,22 @@ --- description: >- - CLI tool to interact with the oceanprotocol's JavaScript library to privately & securely publish, consume and run compute on data. + CLI tool to interact with the oceanprotocol's JavaScript library to privately + & securely publish, consume and run compute on data. --- -# Ocean CLI 🌊 +# Ocean CLI Welcome to the Ocean CLI, your powerful command-line tool for seamless interaction with Ocean Protocol's data-sharing capabilities. 🚀 The Ocean CLI offers a wide range of functionalities, enabling you to: -- [**Publish**](./publish.md) 📤 data services: downloadable files or compute-to-data. -- [**Edit**](./edit.md) ✏️ existing assets. -- [**Consume**](./consume.md) 📥 data services, ordering datatokens and downloading data. -- [**Compute to Data**](./run-c2d.md) 💻 on public available datasets using a published algorithm. +* [**Publish**](publish.md) 📤 data services: downloadable files or compute-to-data. +* [**Edit**](edit.md) ✏️ existing assets. +* [**Consume**](consume.md) 📥 data services, ordering datatokens and downloading data. +* [**Compute to Data**](run-c2d.md) 💻 on public available datasets using a published algorithm. ## Key Information -The Ocean CLI is powered by the [ocean.js](../ocean.js/README.md) JavaScript library, an integral part of the [Ocean Protocol](https://oceanprotocol.com) toolset. 🌐 +The Ocean CLI is powered by the [ocean.js](../ocean.js/) JavaScript library, an integral part of the [Ocean Protocol](https://oceanprotocol.com) toolset. 🌐 Let's dive into the CLI's capabilities and unlock the full potential of Ocean Protocol together! If you're ready to explore each functionality in detail, simply go through the next pages. - diff --git a/developers/ocean-cli/consume.md b/developers/ocean-cli/consume.md index 9c955e0f..a06eb4d7 100644 --- a/developers/ocean-cli/consume.md +++ b/developers/ocean-cli/consume.md @@ -1,4 +1,4 @@ -# Consume a Dataset 📥 +# Consume The process of consuming an asset is straightforward. To achieve this, you only need to execute a single command: @@ -10,4 +10,4 @@ In this command, replace `assetDID` with the specific DID of the asset you want Once executed, this command orchestrates both the **ordering** of a [datatoken](../contracts/datatokens.md) and the subsequent download operation. The asset's content will be automatically retrieved and saved at the specified location, simplifying the consumption process for users. -
Consume
+

Consume

diff --git a/developers/ocean-cli/edit.md b/developers/ocean-cli/edit.md index c27de80d..c24a935f 100644 --- a/developers/ocean-cli/edit.md +++ b/developers/ocean-cli/edit.md @@ -1,4 +1,4 @@ -# Edit a Dataset ✏️ +# Edit To make changes to a dataset, you'll need to start by retrieving the asset's [Decentralized Data Object](../ddo-specification.md) (DDO). @@ -10,9 +10,9 @@ Obtaining the DDO of an asset is a straightforward process. You can accomplish t npm run cli getDDO 'assetDID' ``` -
Retrieve DDO
+

Retrieve DDO

-## Edit the Dataset +## Edit the Dataset After retrieving the asset's DDO and saving it as a JSON file, you can proceed to edit the metadata as needed. Once you've made the necessary changes, you can utilize the following command to apply the updated metadata: diff --git a/developers/ocean-cli/install.md b/developers/ocean-cli/install.md index ab828ab8..29c34d46 100644 --- a/developers/ocean-cli/install.md +++ b/developers/ocean-cli/install.md @@ -1,4 +1,4 @@ -# Installation and Configuration 🛠️ +# Install To get started with the Ocean CLI, follow these steps for a seamless setup: @@ -30,26 +30,26 @@ npm run build Now, let's configure the environment variables required for the CLI to function effectively. 🚀 - ## Setting Environment Variables 🌐 To successfully configure the CLI tool, two essential steps must be undertaken: the setting of the account's private key and the definition of the desired RPC endpoint. These actions are pivotal in enabling the CLI tool to function effectively. ### Private Key Configuration -The CLI tool requires the configuration of the account's 'private key'(by exporting env "PRIVATE_KEY") or a 'mnemonic'(by exporting env "MNEMONIC"). -Both serve as the means by which the CLI tool establishes a connection to the associated wallet. It plays a crucial role in authenticating and authorizing operations performed by the tool. You must choose either one option or the other. The tool will not utilize both simultaneously. +The CLI tool requires the configuration of the account's 'private key'(by exporting env "PRIVATE\_KEY") or a 'mnemonic'(by exporting env "MNEMONIC"). Both serve as the means by which the CLI tool establishes a connection to the associated wallet. It plays a crucial role in authenticating and authorizing operations performed by the tool. You must choose either one option or the other. The tool will not utilize both simultaneously. ```bash export PRIVATE_KEY="XXXX" ``` -or + +or ```bash export MNEMONIC="XXXX" ``` ### RPC Endpoint Specification + Additionally, it is imperative to specify the RPC endpoint that corresponds to the desired network for executing operations. The CLI tool relies on this user-provided RPC endpoint to connect to the network required for its functions. This connection to the network is vital as it enables the CLI tool to interact with the blockchain and execute operations seamlessly. ```bash @@ -72,6 +72,6 @@ To explore the commands and option flags available in the Ocean CLI, simply run npm run cli h ``` -
Available CLI commands & options
+

Available CLI commands & options

With the Ocean CLI successfully installed and configured, you're ready to dive into its capabilities and unlock the full potential of Ocean Protocol. If you encounter any issues during the setup process or have questions, feel free to seek assistance from the [support](https://discord.com/invite/TnXjkR5) team. 🌊 diff --git a/developers/ocean-cli/publish.md b/developers/ocean-cli/publish.md index 660465f7..c2f09ab4 100644 --- a/developers/ocean-cli/publish.md +++ b/developers/ocean-cli/publish.md @@ -1,4 +1,4 @@ -# Publish a Dataset 📤 +# Publish Once you've configured the RPC environment variable, you're ready to publish a new dataset on the connected network. The flexible setup allows you to switch to a different network simply by substituting the RPC endpoint with one corresponding to another network. 🌐 @@ -78,6 +78,6 @@ Now, let's run the command to publish the dataset: npm run cli publish metadata/simpleDownloadDataset.json ``` -
Publish dataset
+

Publish dataset

-Executing this command will initiate the dataset publishing process, making your dataset accessible and discoverable on the Ocean Protocol network. 🌊 \ No newline at end of file +Executing this command will initiate the dataset publishing process, making your dataset accessible and discoverable on the Ocean Protocol network. 🌊 diff --git a/developers/ocean-cli/run-c2d.md b/developers/ocean-cli/run-c2d.md index aac7259f..eaaf7af9 100644 --- a/developers/ocean-cli/run-c2d.md +++ b/developers/ocean-cli/run-c2d.md @@ -1,9 +1,10 @@ -# Run C2D Jobs 🚀 +# Run C2D Jobs ## Start a Compute Job 🎯 -Initiating a compute job can be accomplished through two primary methods. -1. The first approach involves publishing both the dataset and algorithm, as explained in the previous section, [Publish a Dataset](./publish.md) Once that's completed, you can proceed to initiate the compute job. +Initiating a compute job can be accomplished through two primary methods. + +1. The first approach involves publishing both the dataset and algorithm, as explained in the previous section, [Publish a Dataset](publish.md) Once that's completed, you can proceed to initiate the compute job. 2. Alternatively, you have the option to explore available datasets and algorithms and kickstart a compute-to-data job by combining your preferred choices. To illustrate the latter option, you can use the following command: @@ -11,16 +12,17 @@ To illustrate the latter option, you can use the following command: ```bash npm run cli startCompute 'DATASET_DID' 'ALGO_DID' ``` + In this command, replace `DATASET_DID` with the specific DID of the dataset you intend to utilize and `ALGO_DID` with the DID of the algorithm you want to apply. By executing this command, you'll trigger the initiation of a compute-to-data job that harnesses the selected dataset and algorithm for processing. -
Start a compute job
- +

Start a compute job

## Download Compute Results 🧮 -To obtain the compute results, we'll follow a two-step process. First, we'll employ the `getJobStatus`` method, patiently monitoring its status until it signals the job's completion. Afterward, we'll utilize this method to acquire the actual results. +To obtain the compute results, we'll follow a two-step process. First, we'll employ the \`getJobStatus\`\` method, patiently monitoring its status until it signals the job's completion. Afterward, we'll utilize this method to acquire the actual results. + +### Monitor Job Status -### Monitor Job Status To track the status of a job, you'll require both the dataset DID and the compute job DID. You can initiate this process by executing the following command: ```bash @@ -29,7 +31,7 @@ npm run cli getJobStatus 'DATASET_DID' 'JOB_ID' Executing this command will allow you to observe the job's status and verify its successful completion. -
Get Job Status
+

Get Job Status

### Download C2D Results @@ -39,4 +41,4 @@ For the second method, the dataset DID is no longer required. Instead, you'll ne npm run cli downloadJobResults 'JOB_ID' 'RESULT_INDEX' 'DESTINATION_FOLDER' ``` -
Download C2D Job Results
+

Download C2D Job Results

diff --git a/developers/ocean.js/README.md b/developers/ocean.js/README.md index a0caca2a..c426863f 100644 --- a/developers/ocean.js/README.md +++ b/developers/ocean.js/README.md @@ -6,6 +6,8 @@ description: >- # Ocean.js +## Ocean.js + With ocean.js, you can: * **Publish** data services: downloadable files or compute-to-data. Create an ERC721 **data NFT** for each service, and ERC20 **datatoken** for access (1.0 datatokens to access). @@ -30,76 +32,10 @@ The module structure follows this format: When working with a particular module, you will need to provide different parameters. To instantiate classes from the contracts module, you must pass objects such as Signer, which represents the wallet instance, or the contract address you wish to utilize, depending on the scenario. As for the services modules, you will need to provide the provider URI or metadata cache URI. - -# Examples and Showcases 🌟🚀 +## Examples and Showcases 🌟🚀 Ocean.js is more than just a library; it's a gateway to unlocking your potential in the world of decentralized data services. To help you understand its real-world applications, we've curated a collection of examples and showcases. These examples demonstrate how you can use Ocean.js to create innovative solutions that harness the power of decentralized technologies. Each example provides a unique perspective on how you can apply Ocean.js, from decentralized marketplaces for workshops to peer-to-peer platforms for e-books and AI-generated art. These showcases serve as an inspiration for developers like you, looking to leverage Ocean.js in your projects, showcasing its adaptability and transformative capabilities. Dive into these examples to see how Ocean.js can bring your creative visions to life. 📚 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Decentralised Data Marketplace 🌊A decentralised marketplace for peer-to-peer online workshops.marketplace.pnghttps://github.com/oceanprotocol/market
Music NFTs Marketplace 🎼A peer-to-peer platform for buying on-demand music NFTs.ocean_waves.pnghttps://github.com/oceanprotocol/waves
Tokengated Content 🔒A decentralised marketplace for buying & selling AI-generated Art.tokengate.pnghttps://github.com/oceanprotocol/token-gating-template
Tokengated AI Chatbot 🤖A decentralised e-commerce platform to sell templates, UI kits and plugins.tokengated_chatbot.pnghttps://github.com/oceanprotocol/tokengated-next-chatgpt
Buy & Sell Online Workshops 🎓A decentralised marketplace for peer-to-peer online workshops.oceanLearn.jpghttps://www.figma.com/proto/8nT6qEUMMmJsMs8Ow2KzAN/OceanLearn?type=design&scaling=min-zoom&page-id=5%3A44&starting-point-node-id=5%3A91
E-Books On-Demand 📖A peer-to-peer platform for reading on-demand e-books.oceanReads.jpghttps://www.figma.com/proto/xReYRMMnhrynRsNqdy63tT/OceanReads?type=design&node-id=28-380&scaling=min-zoom&page-id=28%3A380&starting-point-node-id=135%3A92
Buy Templates, UI Kits, and plugins 🎨A decentralized e-commerce platform to sell templates, UI kits, and plugins.webPallete.pnghttps://www.figma.com/proto/xAcyc0rqZNTA8TdW43NN5P/WebPalette?type=design&node-id=0-1&scaling=min-zoom&page-id=0%3A1&starting-point-node-id=9%3A138
Decentralised Ticketing Mobile App 📱The first end-to-end decentralized mobile App to buy, sell & trade tickets of any type.TicketingMobileApp.pnghttps://www.figma.com/proto/lu5ODNDwIrJmlM0WqBeBJ3/OceanTickets?page-id=75%3A386&type=design&node-id=336-126&viewport=131%2C706%2C0.19&t=ia9UyDUfZxZQS4k1-1&scaling=scale-down&starting-point-node-id=336%3A126
Publish & Collect Digital Art 🖼️A decentralised marketplace for buying & selling AI-generated Art.oceanArt.jpghttps://www.figma.com/proto/LwbMqloVagXnmlaeDCFiJC/OceanArt?type=design&node-id=13-122&scaling=min-zoom&page-id=13%3A122&starting-point-node-id=13%3A169
+ +
Decentralised Data Marketplace 🌊A decentralised marketplace for peer-to-peer online workshops.marketplace.pnghttps://github.com/oceanprotocol/market
Music NFTs Marketplace 🎼A peer-to-peer platform for buying on-demand music NFTs.ocean_waves.pnghttps://github.com/oceanprotocol/waves
Tokengated Content 🔒A decentralised marketplace for buying & selling AI-generated Art.tokengate.pnghttps://github.com/oceanprotocol/token-gating-template
Tokengated AI Chatbot 🤖A decentralised e-commerce platform to sell templates, UI kits and plugins.tokengated_chatbot.pnghttps://github.com/oceanprotocol/tokengated-next-chatgpt
Buy & Sell Online Workshops 🎓A decentralised marketplace for peer-to-peer online workshops.oceanLearn.jpghttps://www.figma.com/proto/8nT6qEUMMmJsMs8Ow2KzAN/OceanLearn?type=design&scaling=min-zoom&page-id=5%3A44&starting-point-node-id=5%3A91
E-Books On-Demand 📖A peer-to-peer platform for reading on-demand e-books.oceanReads.jpghttps://www.figma.com/proto/xReYRMMnhrynRsNqdy63tT/OceanReads?type=design&node-id=28-380&scaling=min-zoom&page-id=28%3A380&starting-point-node-id=135%3A92
Buy Templates, UI Kits, and plugins 🎨A decentralized e-commerce platform to sell templates, UI kits, and plugins.webPallete.pnghttps://www.figma.com/proto/xAcyc0rqZNTA8TdW43NN5P/WebPalette?type=design&node-id=0-1&scaling=min-zoom&page-id=0%3A1&starting-point-node-id=9%3A138
Decentralised Ticketing Mobile App 📱The first end-to-end decentralized mobile App to buy, sell & trade tickets of any type.TicketingMobileApp.pnghttps://www.figma.com/proto/lu5ODNDwIrJmlM0WqBeBJ3/OceanTickets?page-id=75%3A386&type=design&node-id=336-126&viewport=131%2C706%2C0.19&t=ia9UyDUfZxZQS4k1-1&scaling=scale-down&starting-point-node-id=336%3A126
Publish & Collect Digital Art 🖼️A decentralised marketplace for buying & selling AI-generated Art.oceanArt.jpghttps://www.figma.com/proto/LwbMqloVagXnmlaeDCFiJC/OceanArt?type=design&node-id=13-122&scaling=min-zoom&page-id=13%3A122&starting-point-node-id=13%3A169
With these examples and showcases, you've seen just a glimpse of what you can achieve with this library. Now, it's your turn to dive in, explore, and unleash your creativity using Ocean.js. 🚀 - diff --git a/developers/ocean.js/asset-visibility.md b/developers/ocean.js/asset-visibility.md index 276c0810..ade0edb6 100644 --- a/developers/ocean.js/asset-visibility.md +++ b/developers/ocean.js/asset-visibility.md @@ -4,7 +4,7 @@ In the Ocean Protocol ecosystem, each asset is associated with a state that is m By assigning specific states to assets, Ocean Protocol enables a structured approach to asset management and visibility. These states help regulate asset discoverability, ordering permissions, and the representation of assets in user profiles, ensuring a controlled and reliable asset ecosystem. -It is possible to remove assets from Ocean Protocol by modifying the state of the asset. Each asset has a state, which is stored in the NFT contract. Additional details regarding asset states can be found at this [link](../ddo-specification.md#state). There is also an assets purgatory that contains information about the purgatory status of an asset, as defined in the list-purgatory. For more information about the purgatory, please refer to the [DID and DDO Identifier docs](/developers/identifiers.md). +It is possible to remove assets from Ocean Protocol by modifying the state of the asset. Each asset has a state, which is stored in the NFT contract. Additional details regarding asset states can be found at this [link](../ddo-specification.md#state). There is also an assets purgatory that contains information about the purgatory status of an asset, as defined in the list-purgatory. For more information about the purgatory, please refer to the [DID and DDO Identifier docs](../identifiers.md). We can utilize a portion of the previous tutorial on updating metadata and incorporate the steps to update the asset's state in the asset DDO. diff --git a/developers/ocean.js/cod-asset.md b/developers/ocean.js/cod-asset.md index a1853c8e..fbceb8c1 100644 --- a/developers/ocean.js/cod-asset.md +++ b/developers/ocean.js/cod-asset.md @@ -179,4 +179,3 @@ startComputeJob(datasetDid, algorithmDid).then((jobId) => { process.exit(1); }); - diff --git a/developers/ocean.js/configuration.md b/developers/ocean.js/configuration.md index 3f94dbe8..a830348c 100644 --- a/developers/ocean.js/configuration.md +++ b/developers/ocean.js/configuration.md @@ -26,7 +26,6 @@ The below tabs show partially filled `.env` file content for some of the support {% tabs %} {% tab title="Mainnet" %} {% code title=".env" %} - ```bash # Mandatory environment variables @@ -39,13 +38,11 @@ PRIVATE_KEY= AQUARIUS_URL=https://v4.aquarius.oceanprotocol.com/ PROVIDER_URL=https://v4.provider.oceanprotocol.com ``` - {% endcode %} {% endtab %} {% tab title="Polygon" %} {% code title=".env" %} - ```bash # Mandatory environment variables @@ -58,13 +55,11 @@ PRIVATE_KEY= AQUARIUS_URL=https://v4.aquarius.oceanprotocol.com/ PROVIDER_URL=https://v4.provider.oceanprotocol.com ``` - {% endcode %} {% endtab %} {% tab title="Local (using Barge)" %} {% code title=".env" %} - ```bash # Mandatory environment variables OCEAN_NETWORK=development @@ -75,7 +70,6 @@ PROVIDER_URL=http://172.15.0.4:8030 # Replace PRIVATE_KEY if needed PRIVATE_KEY=0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58 ``` - {% endcode %} {% endtab %} {% endtabs %} @@ -93,12 +87,10 @@ Let's install Ocean.js library into your current project by running: {% tabs %} {% tab title="Terminal" %} {% code overflow="wrap" %} - ```bash npm init npm i @oceanprotocol/lib@latest dotenv crypto-js ethers@5.7.4 @truffle/hdwallet-provider ``` - {% endcode %} {% endtab %} {% endtabs %} @@ -112,7 +104,6 @@ Create the configuration file in the working directory i.e. at the same path whe {% tabs %} {% tab title="config.js" %} {% code title="config.js" %} - ```javascript require("dotenv").config(); const { @@ -171,7 +162,6 @@ module.exports = { oceanConfig, }; ``` - {% endcode %} {% endtab %} {% endtabs %} diff --git a/developers/ocean.js/consume-asset.md b/developers/ocean.js/consume-asset.md index bb017188..699c39c4 100644 --- a/developers/ocean.js/consume-asset.md +++ b/developers/ocean.js/consume-asset.md @@ -18,20 +18,22 @@ Later on, when working with the ocean.js library, you can use this order transac #### Prerequisites -- [Obtain an API key](../get-api-keys-for-blockchain-access.md) -- [Set up the .env file](configuration.md#create-a-env-file) -- [Install the dependencies](configuration.md#setup-dependencies) -- [Create a configuration file](configuration.md#create-a-configuration-file) +* [Obtain an API key](../get-api-keys-for-blockchain-access.md) +* [Set up the .env file](configuration.md#create-a-env-file) +* [Install the dependencies](configuration.md#setup-dependencies) +* [Create a configuration file](configuration.md#create-a-configuration-file) {% hint style="info" %} -The variables **AQUARIUS_URL** and **PROVIDER_URL** should be set correctly in `.env` file +The variables **AQUARIUS\_URL** and **PROVIDER\_URL** should be set correctly in `.env` file {% endhint %} #### Create a script to consume an asset Create a new file in the same working directory where the configuration file (`config.js`) and `.env` files are present, and copy the code as listed below. -
// Note: Make sure .env file and config.js are created and setup correctly
+{% code overflow="wrap" %}
+```javascript
+// Note: Make sure .env file and config.js are created and setup correctly
 const { oceanConfig } = require("./config.js");
 const {
 	ZERO_ADDRESS,
@@ -126,4 +128,5 @@ consumeAsset(did).then(() => {
   process.exit(1);
 });
 
-
+``` +{% endcode %} diff --git a/developers/provider/README.md b/developers/provider/README.md index 7b228237..a7dfc7b2 100644 --- a/developers/provider/README.md +++ b/developers/provider/README.md @@ -26,7 +26,7 @@ Additionally, the Provider service offers compute services by establishing a con * Provides compute services (connects to C2D environment) * Typically run by the Data owner -

Ocean Provider - publish & consume

+

Ocean Provider - publish & consume

In the publishing process, the provider plays a crucial role by encrypting the DDO using its private key. Then, the encrypted DDO is stored on the blockchain. @@ -46,4 +46,4 @@ We recommend checking the README in the Provider [GitHub repository](https://git The following pages in this section specify the endpoints for Ocean Provider that have been implemented by the core developers. -For inspecting the errors received from `Provider` and their reasons, please revise this [document](https://github.com/oceanprotocol/provider/blob/main/ocean_provider/routes/README.md). +For inspecting the errors received from `Provider` and their reasons, please revise this [document](https://github.com/oceanprotocol/provider/blob/main/ocean\_provider/routes/README.md). diff --git a/developers/provider/authentication-endpoints.md b/developers/provider/authentication-endpoints.md index 0fd7391f..2638be8d 100644 --- a/developers/provider/authentication-endpoints.md +++ b/developers/provider/authentication-endpoints.md @@ -37,7 +37,7 @@ Response: #### Javascript Example: -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios'); const address = "0x7e2a2FA2a064F693f0a55C5639476d913Ff12D05" const nonce = "1" diff --git a/developers/provider/encryption-decryption.md b/developers/provider/encryption-decryption.md index 9ccdde2d..282f2be9 100644 --- a/developers/provider/encryption-decryption.md +++ b/developers/provider/encryption-decryption.md @@ -16,7 +16,7 @@ b'0x04b2bfab1f4e...7ed0573' #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const fetch = require('cross-fetch') const data = "test" @@ -90,8 +90,6 @@ decryptAsset(payload); ``` {% endcode %} - - Example response: {% code overflow="wrap" %} diff --git a/developers/provider/general-endpoints.md b/developers/provider/general-endpoints.md index 2d1fa7be..3105b4ea 100644 --- a/developers/provider/general-endpoints.md +++ b/developers/provider/general-endpoints.md @@ -22,7 +22,7 @@ Example response: #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const response = await axios( `https://v4.provider.oceanprotocol.com/api/services/nonce?userAddress=0x0db823218e337a6817e6d7740eb17635deadafaf`) @@ -59,7 +59,7 @@ Example response: #### Javascript Example -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('cross-fetch') const data = "test" diff --git a/developers/retrieve-datatoken-address.md b/developers/retrieve-datatoken-address.md new file mode 100644 index 00000000..1469307c --- /dev/null +++ b/developers/retrieve-datatoken-address.md @@ -0,0 +1,56 @@ +--- +description: >- + Use these steps to reveal the information contained within an asset's DID and + list the buyers of a datatoken +--- + +# Retrieve datatoken/data NFT addresses & Chain ID + +### How to find the network, datatoken address, and data NFT address from an Ocean Market link? + +If you are given an Ocean Market link, then the network and datatoken address for the asset is visible on the Ocean Market webpage. For example, given this asset's Ocean Market link: [https://odc.oceanprotocol.com/asset/did:op:1b26eda361c6b6d307c8a139c4aaf36aa74411215c31b751cad42e59881f92c1](https://odc.oceanprotocol.com/asset/did:op:1b26eda361c6b6d307c8a139c4aaf36aa74411215c31b751cad42e59881f92c1) the webpage shows that this asset is hosted on the Mumbai network, and one simply clicks the datatoken's hyperlink to reveal the datatoken's address as shown in the screenshot below: + +

See the Network and Datatoken Address for an Ocean Market asset by visiting the asset's Ocean Market page.

+ +#### More Detailed Info: + +You can access all the information for the Ocean Market asset also by **enabling Debug mode**. To do this, follow these steps: + +**Step 1** - Click the Settings button in the top right corner of the Ocean Market + +

Click the Settings button

+ +**Step 2** - Check the Activate Debug Mode box in the dropdown menu + +

Check 'Active Debug Mode'

+ +**Step 3** - Go to the page for the asset you would like to examine, and scroll through the DDO information to find the NFT address, datatoken address, chain ID, and other information. + +
+ +### How to use Aquarius to find the chainID and datatoken address from a DID? + +If you know the DID:op but you don't know the source link, then you can use Ocean Aquarius to resolve the metadata for the DID:op to find the `chainId`+ `datatoken address` of the asset. Simply enter in your browser "[https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/ddo/](https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/ddo/did:op:1b26eda361c6b6d307c8a139c4aaf36aa74411215c31b751cad42e59881f92c1)\" to fetch the metadata. + +For example, for the following DID:op: "did:op:1b26eda361c6b6d307c8a139c4aaf36aa74411215c31b751cad42e59881f92c1" the Ocean Aquarius URL can be modified to add the DID:op and resolve its metadata. Simply add "[https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/ddo/](https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/ddo/did:op:1b26eda361c6b6d307c8a139c4aaf36aa74411215c31b751cad42e59881f92c1)" to the beginning of the DID:op and enter the link in your browser like this: [https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/ddo/did:op:1b26eda361c6b6d307c8a139c4aaf36aa74411215c31b751cad42e59881f92c1](https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/ddo/did:op:1b26eda361c6b6d307c8a139c4aaf36aa74411215c31b751cad42e59881f92c1) + +

The metadata printout for this DID:op with the network's Chain ID and datatoken address circled in red

+ +Here are the networks and their corresponding chain IDs: + +```json +"mumbai: 80001" +"polygon: 137" +"bsc: 56" +"energyweb: 246" +"moonriver: 1285" +"mainnet: 1" +"goerli: 5" +"polygonedge: 81001" +"gaiaxtestnet: 2021000" +"alfajores: 44787" +"gen-x-testnet: 100" +"filecointestnet: 3141" +"oasis_saphire_testnet: 23295" +"development: 8996" +``` diff --git a/developers/revenue.md b/developers/revenue.md new file mode 100644 index 00000000..9f64f11e --- /dev/null +++ b/developers/revenue.md @@ -0,0 +1,49 @@ +--- +description: Explore and manage the revenue generated from your data NFTs. +--- + +# Revenue + +Having a [data NFT](contracts/data-nfts.md) that generates revenue continuously, even when you're not actively involved, is an excellent source of income. This revenue stream allows you to earn consistently without actively dedicating your time and effort. Each time someone buys access to your NFT, you receive money, further enhancing the financial benefits. This steady income allows you to enjoy the rewards of your asset while minimizing the need for constant engagement:moneybag: + +

Make it rain

+ +By default, the revenue generated from a [data NFT](contracts/data-nfts.md) is directed to the [owner](contracts/roles.md#nft-owner) of the NFT. This arrangement automatically updates whenever the data NFT is transferred to a new owner. + +However, there are scenarios where you may prefer the revenue to be sent to a different account instead of the owner. This can be accomplished by designating a new payment collector. This feature becomes particularly beneficial when the data NFT is owned by an organization or enterprise rather than an individual. + +{% hint style="info" %} +There are two templates available: [ERC20Template](contracts/datatoken-templates.md#regular-template) and [ERC20TemplateEnterprise](contracts/datatoken-templates.md#enterprise-template). + +In the case of [ERC20TemplateEnterprise](contracts/datatoken-templates.md#enterprise-template), when you deploy a fixed rate exchange, the funds generated as revenue are automatically sent to the owner's address. The owner receives the revenue without any manual intervention. + +On the other hand, with [ERC20Template](contracts/datatoken-templates.md#regular-template), for a fixed rate exchange, the revenue is available at the fixed rate exchange level. The owner or the payment collector has the authority to manually retrieve the revenue. +{% endhint %} + +There are several methods available for establishing a new **payment collector**. You have the option to utilize the ERC20Template/ERC20TemplateEnterprise contract directly. Another approach is to leverage the [ocean.py](../data-scientists/ocean.py/) and [ocean.js](ocean.js/) libraries. Alternatively, you can employ the network explorer associated with your asset. Lastly, you can directly set it up within the Ocean Market. + +Here are some examples of how to set up a new payment collector using the mentioned methods: + +1. Using [Ocean.js](https://github.com/oceanprotocol/ocean.js/blob/ae2ff1ccde53ace9841844c316a855de271f9a3f/src/contracts/Datatoken.ts#L393). + +```typescript +datatokenAddress = 'Your datatoken address' +paymentCollectorAddress = 'New payment collector address' + +await datatoken.setPaymentCollector(datatokenAddress, callerAddress, paymentCollectorAddress) +``` + +2. Using [Ocean.py](https://github.com/oceanprotocol/ocean.py/blob/bad11fb3a4cb00be8bab8febf3173682e1c091fd/ocean\_lib/models/test/test\_datatoken.py#L39). + +```python +datatokenAddress = 'Your datatoken address' +paymentCollectorAddress = 'New payment collector address' + +datatoken.setPaymentCollector(paymentCollectorAddress, {"from": publisher_wallet}) +``` + +3. Using the [Ocean Market](https://market.oceanprotocol.com/). + +Go to the asset detail page and then click on “Edit Asset” and then scroll down to the field called “Payment Collector Address”. Add the new Ethereum address in this field and then click “Submit“. Finally, you will then need to sign two transactions to finalize the update. + +

Update payment collector

diff --git a/developers/storage.md b/developers/storage.md index f8e33156..58fc1e87 100644 --- a/developers/storage.md +++ b/developers/storage.md @@ -1,5 +1,4 @@ --- -title: Storage Specifications description: Specification of storage options for assets in Ocean Protocol. --- @@ -154,7 +153,7 @@ Example: } ``` -To get information about the files after encryption, the `/fileinfo` endpoint of the [_Provider_](provider/README.md) returns based on a passed DID an array of file metadata (based on the file type): +To get information about the files after encryption, the `/fileinfo` endpoint of the [_Provider_](provider/) returns based on a passed DID an array of file metadata (based on the file type): ```json [ diff --git a/developers/subgraph/README.md b/developers/subgraph/README.md index 45c2bc29..90e9d918 100644 --- a/developers/subgraph/README.md +++ b/developers/subgraph/README.md @@ -12,7 +12,7 @@ The [Ocean Subgraph](https://github.com/oceanprotocol/ocean-subgraph) is built o Imagine this 💭: if you were to always fetch data from the on-chain, you'd start to feel a little...old :older\_woman: Like your queries are stuck in a time warp. But fear not! When you embrace the power of the subgraph, data becomes your elixir of youth. -

Ocean Subgraph

+

Ocean Subgraph

The subgraph reads data from the blockchain, extracting relevant information. Additionally, it indexes events emitted from the Ocean smart contracts. This collected data is then made accessible to any decentralized applications (dApps) that require it, through GraphQL queries. The subgraph organizes and presents the data in a JSON format, facilitating efficient and structured access for dApps. @@ -28,12 +28,12 @@ When it comes to fetching valuable information about [Data NFTs](../contracts/da ### Ocean Subgraph deployments -| Network | Subgraph URL | GraphiQL URL | -| ------------------- | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| Ethereum | [Subgraph](https://v4.subgraph.mainnet.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.mainnet.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) | -| Polygon | [Subgraph](https://v4.subgraph.polygon.oceanprotocol.com/) | [GraphiQL](https://v4.subgraph.polygon.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) | -| OP Mainnet(Optimism)| [Subgraph](https://v4.subgraph.optimism.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.optimism.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) | -| Sepolia | [Subgraph](https://v4.subgraph.sepolia.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.sepolia.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) | +| Network | Subgraph URL | GraphiQL URL | +| -------------------- | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| Ethereum | [Subgraph](https://v4.subgraph.mainnet.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.mainnet.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) | +| Polygon | [Subgraph](https://v4.subgraph.polygon.oceanprotocol.com/) | [GraphiQL](https://v4.subgraph.polygon.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) | +| OP Mainnet(Optimism) | [Subgraph](https://v4.subgraph.optimism.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.optimism.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) | +| Sepolia | [Subgraph](https://v4.subgraph.sepolia.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.sepolia.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) | {% hint style="warning" %} When making subgraph queries, please remember that the parameters you send, such as a datatoken address or a data NFT address, should be in **lowercase**. This is an essential requirement to ensure accurate processing of the queries. We kindly request your attention to this detail to facilitate a seamless query experience. diff --git a/developers/subgraph/get-data-nft-information.md b/developers/subgraph/get-data-nft-information.md index 4972981b..533adde7 100644 --- a/developers/subgraph/get-data-nft-information.md +++ b/developers/subgraph/get-data-nft-information.md @@ -8,17 +8,15 @@ description: >- Now that you are familiar with the process of retrieving a list of data NFTs 😎, let's explore how to obtain more specific details about a particular NFT through querying. By utilizing the knowledge you have gained, you can customize your GraphQL query to include additional parameters such as the NFT's metadata, creator information, template, or any other relevant data points. This will enable you to delve deeper into the intricacies of a specific NFT and gain a comprehensive understanding of its attributes. With this newfound capability, you can unlock valuable insights and make informed decisions based on the specific details retrieved. So, let's dive into the fascinating world of querying and unravel the unique characteristics of individual data NFTs. - - The result of the following GraphQL query returns the information about a particular data NFT. In this example, `0x1c161d721e6d99f58d47f709cdc77025056c544c`. -_PS: In this example, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](README.md#ocean-subgraph-deployments)_._ +_PS: In this example, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](./#ocean-subgraph-deployments)_._ {% tabs %} {% tab title="Javascript" %} The javascript below can be used to run the query and fetch the information of a data NFT. If you wish to change the network, replace the variable's value `network` as needed. Change the value of the variable `datanftAddress` with the address of your choice. -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" var axios = require('axios'); const datanftAddress = "0x1c161d721e6d99f58d47f709cdc77025056c544c"; diff --git a/developers/subgraph/get-datatoken-buyers.md b/developers/subgraph/get-datatoken-buyers.md index c858ee39..e1ef5458 100644 --- a/developers/subgraph/get-datatoken-buyers.md +++ b/developers/subgraph/get-datatoken-buyers.md @@ -6,13 +6,13 @@ description: Query the Subgraph to see the buyers of a datatoken. The result of the following GraphQL query returns the list of buyers for a particular datatoken. Here, `0xc22bfd40f81c4a28c809f80d05070b95a11829d9` is the address of the datatoken. -_PS: In this example, the query is executed on the Ocean subgraph deployed on the **Sepolia** network. If you want to change the network, please refer to_ [_this table_](README.md#ocean-subgraph-deployments)_._ +_PS: In this example, the query is executed on the Ocean subgraph deployed on the **Sepolia** network. If you want to change the network, please refer to_ [_this table_](./#ocean-subgraph-deployments)_._ {% tabs %} {% tab title="JavaScript" %} The javascript below can be used to run the query and fetch the list of buyers for a datatoken. If you wish to change the network, replace the variable's value `network` as needed. Change the value of the variable `datatoken` with the address of your choice. -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const datatoken = "0xc22bfd40f81c4a28c809f80d05070b95a11829d9".toLowerCase() diff --git a/developers/subgraph/get-datatoken-information.md b/developers/subgraph/get-datatoken-information.md index 9b3846c9..663b1360 100644 --- a/developers/subgraph/get-datatoken-information.md +++ b/developers/subgraph/get-datatoken-information.md @@ -8,17 +8,15 @@ description: >- To fetch detailed information about a specific datatoken, you can utilize the power of GraphQL queries. By constructing a query tailored to your needs, you can access key parameters such as the datatoken's ID, name, symbol, total supply, creator, and associated dataTokenAddress. This allows you to gain a deeper understanding of the datatoken's characteristics and properties. With this information at your disposal, you can make informed decisions, analyze market trends, and explore the vast potential of datatokens within the Ocean ecosystem. Harness the capabilities of GraphQL and unlock a wealth of datatoken insights. - - The result of the following GraphQL query returns the information about a particular datatoken. Here, `0x122d10d543bc600967b4db0f45f80cb1ddee43eb` is the address of the datatoken. -_PS: In this example, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](README.md#ocean-subgraph-deployments)_._ +_PS: In this example, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](./#ocean-subgraph-deployments)_._ {% tabs %} {% tab title="Javascript" %} The javascript below can be used to run the query and fetch the information of a datatoken. If you wish to change the network, replace the variable's value `network` as needed. Change the value of the variable `datatokenAddress` with the address of your choice. -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" var axios = require('axios'); const datatokenAddress = "0x122d10d543bc600967b4db0f45f80cb1ddee43eb"; diff --git a/developers/subgraph/get-veocean-stats.md b/developers/subgraph/get-veocean-stats.md index 60259e43..d2393ec9 100644 --- a/developers/subgraph/get-veocean-stats.md +++ b/developers/subgraph/get-veocean-stats.md @@ -4,7 +4,7 @@ description: 'Discover the World of veOCEAN: Retrieving a Stats' # Get veOCEAN stats -If you are already familiarized with veOCEAN, you're off to a great start. However, if you need a refresher, we recommend visiting the [veOCEAN](../../data-farming/passivedf.md) page for a quick overview :mag: +If you are already familiarized with veOCEAN, you're off to a great start. However, if you need a refresher, we recommend visiting the [veOCEAN](https://github.com/oceanprotocol/docs/blob/node-release/data-farming/passivedf.md) page for a quick overview :mag: On this page, you'll find a few examples to fetch the stats of veOCEANS from the Ocean Subgraph. These examples serve as a valuable starting point to help you retrieve essential information about veOCEAN. However, if you're eager to delve deeper into the topic, we invite you to visit the [GitHub](https://github.com/oceanprotocol/ocean-subgraph/blob/main/test/integration/VeOcean.test.ts) repository. There, you'll discover a wealth of additional examples, which provide comprehensive insights. Feel free to explore and expand your knowledge! :books: @@ -20,7 +20,7 @@ The veOCEAN is deployed on the Ethereum mainnet, along with two test networks. T {% tab title="JavaScript" %} You can utilize the following JavaScript code snippet to execute the query and retrieve the total number of locked OCEAN: -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" var axios = require('axios'); const query = `query{ @@ -122,7 +122,7 @@ query { {% tab title="JavaScript" %} You can utilize the following JavaScript code snippet to execute the query and fetch the list of veOCEAN holders. -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" var axios = require('axios'); const query = `query { @@ -722,4 +722,3 @@ query { {% endcode %}
- diff --git a/developers/subgraph/list-data-nfts.md b/developers/subgraph/list-data-nfts.md index c947f590..40192f7c 100644 --- a/developers/subgraph/list-data-nfts.md +++ b/developers/subgraph/list-data-nfts.md @@ -16,13 +16,13 @@ There are several options available to see this query in action. Below, you will 2. Execute the query in Python by following the code snippet. 3. Execute the query in JavaScript by clicking on the "Run" button of the Javascript tab. -_PS: In these examples, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](README.md#ocean-subgraph-deployments)_._ +_PS: In these examples, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](./#ocean-subgraph-deployments)_._ {% tabs %} {% tab title="Javascript" %} The javascript below can be used to run the query and retrieve a list of NFTs. If you wish to change the network, then replace the value of `network` variable as needed. -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" const axios = require('axios') const query = `{ diff --git a/developers/subgraph/list-datatokens.md b/developers/subgraph/list-datatokens.md index a93fefeb..61619aec 100644 --- a/developers/subgraph/list-datatokens.md +++ b/developers/subgraph/list-datatokens.md @@ -4,17 +4,15 @@ description: 'Discover the World of datatokens: Retrieving a List of datatokens' # Get datatokens -With your newfound knowledge of fetching data NFTs and retrieving the associated information, fetching a list of datatokens will be a breeze :ocean:. Building upon your understanding, let's now delve into the process of retrieving a list of datatokens. By applying similar techniques and leveraging the power of GraphQL queries, you'll be able to effortlessly navigate the landscape of datatokens and access the wealth of information they hold. So, let's dive right in and unlock the potential of exploring datatokens with ease and efficiency. +With your newfound knowledge of fetching data NFTs and retrieving the associated information, fetching a list of datatokens will be a breeze :ocean:. Building upon your understanding, let's now delve into the process of retrieving a list of datatokens. By applying similar techniques and leveraging the power of GraphQL queries, you'll be able to effortlessly navigate the landscape of datatokens and access the wealth of information they hold. So, let's dive right in and unlock the potential of exploring datatokens with ease and efficiency. - - -_PS: In this example, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](README.md#ocean-subgraph-deployments)_._ +_PS: In this example, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](./#ocean-subgraph-deployments)_._ {% tabs %} {% tab title="Javascript" %} The javascript below can be used to run the query. If you wish to change the network, replace the variable's value `network` as needed. -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" var axios = require('axios'); const query = `{ diff --git a/developers/subgraph/list-fixed-rate-exchanges.md b/developers/subgraph/list-fixed-rate-exchanges.md index 93416c94..f8bffebe 100644 --- a/developers/subgraph/list-fixed-rate-exchanges.md +++ b/developers/subgraph/list-fixed-rate-exchanges.md @@ -6,15 +6,13 @@ description: 'Discover the World of NFTs: Retrieving a List of Fixed-rate exchan Having gained knowledge about fetching lists of data NFTs and datatokens and extracting specific information about each, let's now explore the process of retrieving the information of fixed-rate exchanges. A fixed-rate exchange refers to a mechanism where data assets can be traded at a predetermined rate or price. These exchanges offer stability and predictability in data transactions, enabling users to securely and reliably exchange data assets based on fixed rates. If you need a refresher on fixed-rate exchanges, visit the [asset pricing](../contracts/pricing-schemas.md#fixed-pricing) page. - - -_PS: In this example, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](README.md#ocean-subgraph-deployments)_._ +_PS: In this example, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](./#ocean-subgraph-deployments)_._ {% tabs %} {% tab title="Javascript" %} The javascript below can be used to run the query and fetch a list of fixed-rate exchanges. If you wish to change the network, replace the variable's value `network` as needed. -```runkit nodeVersion="18.x.x" +```runkit nodeVersion="18.x.x" var axios = require('axios'); const query = `{ diff --git a/developers/uploader/README.md b/developers/uploader/README.md index ce89fe25..dd85cf85 100644 --- a/developers/uploader/README.md +++ b/developers/uploader/README.md @@ -8,9 +8,9 @@ The Uploader represents a cutting-edge solution designed to streamline the uploa Uploader is built on a robust architecture that seamlessly integrates various components to ensure optimal performance. The architecture consists of: -- Uploader API Layer: Exposes both public and private APIs for frontend and microservices interactions, respectively. -- 1-N Storage Microservices: Multiple microservices, each specializing in different storage types, responsible for handling storage operations. -- IPFS Integration: Temporary storage using the InterPlanetary File System (IPFS). +* Uploader API Layer: Exposes both public and private APIs for frontend and microservices interactions, respectively. +* 1-N Storage Microservices: Multiple microservices, each specializing in different storage types, responsible for handling storage operations. +* IPFS Integration: Temporary storage using the InterPlanetary File System (IPFS). ### Streamlined File Uploads @@ -24,40 +24,40 @@ Obtain unique identifiers such as hashes or CIDs for your uploaded files. These Uploader offers a range of powerful features tailored to meet the needs of any decentralized storage: -- User Content Uploads: Users can seamlessly upload their content through the user-friendly frontend interface. -- Payment Handling: Uploader integrates with payment systems to manage the financial aspects of storage services. -- Decentralized Storage: Content is pushed to decentralized storage networks like Filecoin and Arweave for enhanced security and redundancy. -- API Documentation: Comprehensive API documentation on each repo to allow users to understand and interact with the system effortlessly. -- Uploader.js: a TypeScript library designed to simplify interaction with the Uploader API. This library provides a user-friendly and intuitive interface for calling API endpoints within the Uploader Storage system. +* User Content Uploads: Users can seamlessly upload their content through the user-friendly frontend interface. +* Payment Handling: Uploader integrates with payment systems to manage the financial aspects of storage services. +* Decentralized Storage: Content is pushed to decentralized storage networks like Filecoin and Arweave for enhanced security and redundancy. +* API Documentation: Comprehensive API documentation on each repo to allow users to understand and interact with the system effortlessly. +* Uploader.js: a TypeScript library designed to simplify interaction with the Uploader API. This library provides a user-friendly and intuitive interface for calling API endpoints within the Uploader Storage system. ### Components -- [Uploader](https://github.com/oceanprotocol/decentralized_storage_backend) -- [Uploader.js](https://github.com/oceanprotocol/uploader.js) -- [Uploader UI](https://github.com/oceanprotocol/uploader-ui-lib) +* [Uploader](https://github.com/oceanprotocol/decentralized\_storage\_backend) +* [Uploader.js](https://github.com/oceanprotocol/uploader.js) +* [Uploader UI](https://github.com/oceanprotocol/uploader-ui-lib) ### Microservices: -- [Filecoin](https://github.com/oceanprotocol/uploader_filecoin) (WIP) -- [Arweave](https://github.com/oceanprotocol/uploader_arweave) +* [Filecoin](https://github.com/oceanprotocol/uploader\_filecoin) (WIP) +* [Arweave](https://github.com/oceanprotocol/uploader\_arweave) ### User Workflow Uploader simplifies the user workflow, allowing for easy management of storage operations: -- Users fetch available storage types and payment options from the frontend. -- Quotes for storing files on the Microservice network. -- Files are uploaded from the frontend to Uploader, which handles temporary storage via IPFS. -- The Microservice takes over, ensuring data is stored on the selected network securely. -- Users can monitor upload status and retrieve links to access their stored content. +* Users fetch available storage types and payment options from the frontend. +* Quotes for storing files on the Microservice network. +* Files are uploaded from the frontend to Uploader, which handles temporary storage via IPFS. +* The Microservice takes over, ensuring data is stored on the selected network securely. +* Users can monitor upload status and retrieve links to access their stored content. #### File storage flow -

Ocean Uploader - storage flow 1

+

Ocean Uploader - storage flow 1

#### File retrieval flow -

Ocean Uploader - storage flow 1

+

Ocean Uploader - storage flow 1

### API Documentation @@ -67,8 +67,8 @@ Documentation is provided in the repos to facilitate seamless integration and in Did you encounter a problem? Open an issue in Ocean Protocol's repos: -- [Uploader](https://github.com/oceanprotocol/decentralized_storage_backend/issues) -- [Uploader.js](https://github.com/oceanprotocol/uploader.js/issues) -- [Filecoin Microservice](https://github.com/oceanprotocol/uploader_filecoin/issues) -- [Arweave Microservice](https://github.com/oceanprotocol/uploader_arweave/issues) -- [Uploader UI Library](https://github.com/oceanprotocol/uploader-ui-lib/issues) +* [Uploader](https://github.com/oceanprotocol/decentralized\_storage\_backend/issues) +* [Uploader.js](https://github.com/oceanprotocol/uploader.js/issues) +* [Filecoin Microservice](https://github.com/oceanprotocol/uploader\_filecoin/issues) +* [Arweave Microservice](https://github.com/oceanprotocol/uploader\_arweave/issues) +* [Uploader UI Library](https://github.com/oceanprotocol/uploader-ui-lib/issues) diff --git a/developers/uploader/uploader-js.md b/developers/uploader/uploader-js.md index d7b82b92..b66a1597 100644 --- a/developers/uploader/uploader-js.md +++ b/developers/uploader/uploader-js.md @@ -1,6 +1,6 @@ # Uploader.js -Uploader.js is a robust TypeScript library that serves as a vital bridge to interact with the Ocean Uploader API. It simplifies the process of managing file storage uploads, obtaining quotes, and more within the Ocean Protocol ecosystem. This library offers developers a straightforward and efficient way to access the full range of Uploader API endpoints, facilitating seamless integration of decentralized storage capabilities into their applications. +[Uploader.js](https://github.com/oceanprotocol/uploader.js) is a robust TypeScript library that serves as a vital bridge to interact with the Ocean Uploader API. It simplifies the process of managing file storage uploads, obtaining quotes, and more within the Ocean Protocol ecosystem. This library offers developers a straightforward and efficient way to access the full range of Uploader API endpoints, facilitating seamless integration of decentralized storage capabilities into their applications. Whether you're building a decentralized marketplace, a content management system, or any application that involves handling digital assets, Uploader.js provides a powerful toolset to streamline your development process and enhance your users' experience. @@ -12,12 +12,12 @@ Ensure that the Signer object (signer in this case) you're passing to the functi Excited to get your files safely stored? Let's breeze through the process using Ocean Uploader. First things first, install the package with npm or yarn: -```bash +````bash npm install @oceanprotocol/uploader ```bash yarn add @oceanprotocol/uploader -``` +```` or @@ -77,78 +77,86 @@ For additional details, please visit the [Uploader.js](https://github.com/oceanp The library offers developers a versatile array of methods designed for seamless interaction with the Ocean Uploader API. These methods collectively empower developers to utilize Ocean's decentralized infrastructure for their own projects:
- - constructor(baseURL: string) - - - ``` - Create a new instance of the UploaderClient. - ``` -
-
- - getStorageInfo() - - - ``` - Fetch information about supported storage types and payments. - ``` -
-
- - getQuote(args: GetQuoteArgs) - - ``` - Fetch a quote for storing files on a specific storage. - ``` +constructor(baseURL: string) + +``` +Create a new instance of the UploaderClient. +``` +
+
- - upload(quoteId: string, nonce: number, signature: string, files: File[]) - - ``` - Upload files according to the quote request. - ``` +getStorageInfo() + +``` +Fetch information about supported storage types and payments. +``` +
+
- - getStatus(quoteId: string) - - ``` - Fetch the status of an asset during upload. - ``` +getQuote(args: GetQuoteArgs) + +``` +Fetch a quote for storing files on a specific storage. +``` +
+
- - getLink(quoteId: string, nonce: number, signature: string) - - ``` - Fetch hash reference for the asset. For example: CID for Filecoin, Transaction Hash for Arweave. - ``` +upload(quoteId: string, nonce: number, signature: string, files: File[]) + +``` +Upload files according to the quote request. +``` +
+
- - registerMicroservice(args: RegisterArgs) - - ``` - Register a new microservice that handles a storage type. - ``` +getStatus(quoteId: string) + +``` +Fetch the status of an asset during upload. +``` +
+
- - getHistory(page: number = 1, pageSize: number = 25) - - ``` - Retrieves the quote history for the given user address, nonce, and signature. - ``` +getLink(quoteId: string, nonce: number, signature: string) + +``` +Fetch hash reference for the asset. For example: CID for Filecoin, Transaction Hash for Arweave. +``` +
-
-Whether you're a developer looking to integrate Ocean Uploader into your application or a contributor interested in enhancing this TypeScript library, we welcome your involvement. By following the provided documentation, you can harness the capabilities of Uploader.js to make the most of decentralized file storage in your projects. -Feel free to explore the API reference, contribute to the library's development, and become a part of the Ocean Protocol community's mission to democratize data access and storage. \ No newline at end of file +
+ +registerMicroservice(args: RegisterArgs) + +``` +Register a new microservice that handles a storage type. +``` + +
+ +
+ +getHistory(page: number = 1, pageSize: number = 25) + +``` +Retrieves the quote history for the given user address, nonce, and signature. +``` + +
+ +\ +Whether you're a developer looking to integrate Ocean Uploader into your application or a contributor interested in enhancing this TypeScript library, we welcome your involvement. By following the [provided documentation](https://github.com/oceanprotocol/uploader.js), you can harness the capabilities of Uploader.js to make the most of decentralized file storage in your projects. + +Feel free to explore the API reference, contribute to the library's development, and become a part of the Ocean Protocol community's mission to democratize data access and storage. diff --git a/developers/uploader/uploader-ui-marketplace.md b/developers/uploader/uploader-ui-marketplace.md index b67107c2..caf8265d 100644 --- a/developers/uploader/uploader-ui-marketplace.md +++ b/developers/uploader/uploader-ui-marketplace.md @@ -1,27 +1,30 @@ --- -description: With the Uploader UI, users can effortlessly upload their files and obtain a unique hash or CID (Content Identifier) for each uploaded asset to use on the Marketplace. +description: >- + With the Uploader UI, users can effortlessly upload their files and obtain a + unique hash or CID (Content Identifier) for each uploaded asset to use on the + Marketplace. --- -# Uploader UI Marketplace +# Uploader UI to Market -Step 1: Copy the hash or CID from your upload. +Step 1: Copy the hash or CID from your upload. - +![](../../.gitbook/assets/uploader\_screen\_11.png) -Step 2: Open the Ocean Marketplace. Go to publish and fill in all the information for your dataset. +Step 2: Open the Ocean Marketplace. Go to publish and fill in all the information for your dataset. - +![](../../.gitbook/assets/uploader\_screen\_12.png) -Step 3: When selecting the file to publish, open the hosting provider (e.g. "Arweave" tab) +Step 3: When selecting the file to publish, open the hosting provider (e.g. "Arweave" tab) - +![](../../.gitbook/assets/uploader\_screen\_13.png) -Step 4: Paste the hash you copied earlier. +Step 4: Paste the hash you copied earlier. - +![](../../.gitbook/assets/uploader\_screen\_14.png) -Step 5: Click on "VALIDATE" to ensure that your file gets validated correctly. +Step 5: Click on "VALIDATE" to ensure that your file gets validated correctly. - +![](../../.gitbook/assets/uploader\_screen\_15.png) -This feature not only simplifies the process of storing and managing files but also seamlessly integrates with the Ocean Marketplace. Once your file is uploaded via Uploader UI, you can conveniently use the generated hash or CID to interact with your assets on the Ocean Marketplace, streamlining the process of sharing, validating, and trading your digital content. \ No newline at end of file +This feature not only simplifies the process of storing and managing files but also seamlessly integrates with the Ocean Marketplace. Once your file is uploaded via Uploader UI, you can conveniently use the generated hash or CID to interact with your assets on the Ocean Marketplace, streamlining the process of sharing, validating, and trading your digital content. diff --git a/developers/uploader/uploader-ui.md b/developers/uploader/uploader-ui.md index 797ed4c0..a387b9c9 100644 --- a/developers/uploader/uploader-ui.md +++ b/developers/uploader/uploader-ui.md @@ -1,6 +1,6 @@ # Uploader UI -The [Uploader UI](https://github.com/oceanprotocol/uploader-ui-lib) stands as a robust UI react library dedicated to optimizing the uploading, and interaction with digital assets. +The [Uploader UI](https://github.com/oceanprotocol/uploader-ui-lib) stands as a robust UI react library dedicated to optimizing the uploading, and interaction with digital assets. Through an intuitive platform, the tool significantly simplifies the entire process, offering users a seamless experience for uploading files, acquiring unique identifiers such as hashes or CIDs, and effectively managing their decentralized assets. Developed using React, TypeScript, and CSS modules, the library seamlessly connects to Ocean remote components by default, ensuring a cohesive and efficient integration within the ecosystem. @@ -175,4 +175,4 @@ import dynamic from 'next/dynamic' This comprehensive setup ensures the proper integration and functioning of the Ocean Protocol's Uploader UI library within a NextJS application. -For more details visit the [Uploader UI](https://github.com/oceanprotocol/uploader-ui) project. \ No newline at end of file +For more details visit the [Uploader UI](https://github.com/oceanprotocol/uploader-ui) project. diff --git a/discover/README.md b/discover/README.md index 0c519dd0..259df7bd 100644 --- a/discover/README.md +++ b/discover/README.md @@ -1,6 +1,5 @@ --- -description: -cover: ../.gitbook/assets/cover/discover_banner.png +cover: ../.gitbook/assets/discover_banner.png coverY: 7.413145539906106 --- @@ -8,30 +7,30 @@ coverY: 7.413145539906106 Ocean's mission is to level the playing field for AI and data. -How? **By helping _you_ monetize AI models and data, while preserving privacy.** +How? **By helping **_**you**_** monetize AI models and data, while preserving privacy.** Ocean is a decentralized data exchange protocol to drive AI. Its core tech is: -- Data NFTs & datatokens, to enable token-gated access control, data wallets, data DAOs, and more. -- Compute-to-data: buy & sell private data, while preserving privacy + +* Data NFTs & datatokens, to enable token-gated access control, data wallets, data DAOs, and more. +* Compute-to-data: buy & sell private data, while preserving privacy ### Ocean Users Are... -- **[Developers](../developers/README.md).** Build token-gated AI dApps & APIs -- **[Data scientists](../data-scientists/README.md).** Earn via predictions & challenges -- **[OCEAN holders](../data-farming/README.md).** Get rewards by locking OCEAN & curating data, via Data Farming. -- **[Ocean ambassadors](https://oceanprotocol.com/explore/community)** +* [**Developers**](../developers/)**.** Build token-gated AI dApps & APIs +* [**Data scientists**](../data-scientists/)**.** Earn via predictions & challenges +* [**OCEAN holders**](../archive/data-farming/)**.** Get rewards by locking OCEAN & curating data, via Data Farming. +* [**Ocean ambassadors**](https://oceanprotocol.com/explore/community) ### Quick Links -- [Why Ocean?](why-ocean.md) and [What is Ocean?](what-is-ocean.md) -- [What can you do with Ocean?](benefits.md) -- [OCEAN: The Ocean token](ocean-token.md) -- [Networks](networks/README.md), [Bridges](networks/bridges.md) -- [FAQ](faq.md), [Glossary](glossary.md) +* [Why Ocean?](why-ocean.md) and [What is Ocean?](what-is-ocean.md) +* [What can you do with Ocean?](benefits.md) +* [OCEAN: The Ocean token](ocean-token.md) +* [Networks](networks.md), [Bridges](bridges.md) +* [FAQ](faq.md), [Glossary](glossary.md) ----- +*** -_Next: [Why Ocean?](why-ocean.md)_ - -_Back: [Docs main](../README.md)_ +_Next:_ [_Why Ocean?_](why-ocean.md) +_Back:_ [_Docs main_](../) diff --git a/discover/benefits.md b/discover/benefits.md index ee376504..6b8d2eb1 100644 --- a/discover/benefits.md +++ b/discover/benefits.md @@ -1,118 +1,116 @@ ---- -description: ---- - # What can you do with Ocean? This page shows things you can do with Ocean... -- As a builder -- As a data scientist -- As an OCEAN holder -- Become an Ocean ambassador + +* As a builder +* As a data scientist +* As an OCEAN holder +* Become an Ocean ambassador Let's explore each... ## What builders can do -
+
+ +
+ +
-Build Your Token-gated AI dApp +Build Your Token-gated AI dApp Monetize by making your dApp token-gated. Users no longer have to use credit cards or manage OAuth credentials. Rather, they buy & spend ERC20 datatokens to access your dApp content. -Go further yet: rather than storing user profile data on your centralized server -- which exposes you to liability -- have it on-chain encrypted by the user's wallet, and just-in-time decrypt for the app. +Go further yet: rather than storing user profile data on your centralized server -- which exposes you to liability -- have it on-chain encrypted by the user's wallet, and just-in-time decrypt for the app.
-
-Build Your Token-gated REST API +Build Your Token-gated REST API Focus on the backend: make a Web3-native REST API. Like the token-gated dApps, consumers of the REST API buy access with crypto, not credit cards.
-
-Build Your Data Market +Build Your Data Market -Build a decentralized data marketplace by [forking Ocean Market code](../developers/build-a-marketplace/) to quickly get something good, or by building up from Ocean components for a more custom look. +Build a decentralized data marketplace by [forking Ocean Market code](https://github.com/oceanprotocol/docs/blob/node-release/developers/build-a-marketplace/README.md) to quickly get something good, or by building up from Ocean components for a more custom look.
-To dive deeper, please go to [Developers page](../developers/README.md). - +To dive deeper, please go to [Developers page](../developers/). ## What data scientists can do
-
+ +
+
-Use Ocean in Python +Use Ocean in Python -The **[ocean.py](../data-scientists/ocean.py/README.md)** library is built for the key environment of data scientists: Python. Use it to earn $ from your data, share your data, get more data from others, and see provenance of data usage. +The [**ocean.py**](../data-scientists/ocean.py/) library is built for the key environment of data scientists: Python. Use it to earn $ from your data, share your data, get more data from others, and see provenance of data usage.
-
-Do crypto price predictions +Do crypto price predictions -With [Ocean Predictoor](../predictoor/README.md), you submit predictions for the future price of BTC, ETH etc, and earn. The more accurate your predictions, the more $ you can earn. +With [Ocean Predictoor](../predictoor.md), you submit predictions for the future price of BTC, ETH etc, and earn. The more accurate your predictions, the more $ you can earn.
-
-Compete in a Data Challenge +Compete in a Data Challenge Ocean regularly offer [data science challenges](../data-scientists/join-a-data-challenge.md) on real-world problems. Showcase your skills, and earn $ prizes.
-To dive deeper, please go to [Data Scientists page](../data-scientists/README.md). - +To dive deeper, please go to [Data Scientists page](../data-scientists/). ## What OCEAN holders can do
-Earn Rewards via Data Farming +Earn Rewards via Data Farming -Ocean's [Data Farming](../data-farming/README.md) incentives program enables OCEAN holders to earn by locking OCEAN, and curating data. +Ocean's [Data Farming](../archive/data-farming/) incentives program enables OCEAN holders to earn by locking OCEAN, and curating data.
## Become an Ocean Ambassador -
-Become an Ambassador + +Become an Ambassador As an ambassador, you are an advocate for the protocol, promoting its vision and mission. By sharing your knowledge and enthusiasm, you can educate others about the benefits of Ocean Protocol, inspiring them to join the ecosystem. As part of a global community of like-minded individuals, you gain access to exclusive resources, networking opportunities, and collaborations that further enhance your expertise in the data economy. Of course, the Ocean Protocol Ambassador Program rewards contributors with weekly bounties and discretionary grants for growing the Ocean Protocol communtiy worldwide. Follow the steps below to become an ambassador: -To become a member of the Ambassador Program, follow these steps: +To become a member of the Ambassador Program, follow these steps: + 1. Join Ocean Protocol's [Discord](https://discord.com/invite/TnXjkR5) server -2. Join the Discord channel called #treasure-hunter. +2. Join the Discord channel called #treasure-hunter. 3. Access the application form: "[Apply](https://discord.com/channels/612953348487905282/1133478278531911790) to use this channel." -4. Answer the questions in the application form. +4. Answer the questions in the application form. 5. Once you've completed the application process, you can start earning experience points (XP) by actively engaging in discussions on various topics related to the Ocean Protocol. +
+*** ----- +_Next:_ [_OCEAN: The Ocean token_](ocean-token.md) -_Next: [OCEAN: The Ocean token](ocean-token.md)_ - -_Back: [What is Ocean?](what-is-ocean.md)_ +_Back:_ [_What is Ocean?_](what-is-ocean.md) diff --git a/discover/bridges.md b/discover/bridges.md new file mode 100644 index 00000000..3ae82089 --- /dev/null +++ b/discover/bridges.md @@ -0,0 +1,86 @@ +--- +description: Transfer tokens between two blockchain networks. +--- + +# Network Bridges + +This page covers bridges of OCEAN from Ethereum mainnet to... + +* BNB Smart Chain +* Polygon + +For other bridges and networks, see the [Networks page](networks.md). + +The rest of this doc gives bridging details. You can skip it until you need the reference information. + +### BNB Smart Chain Bridge + +To transfer OCEAN to and from the BNB Smart Chain, we recommend using [Binance Bridge](https://www.bnbchain.org/en/bridge). BSC offers various options such as withdrawing crypto from [Binance](https://www.binance.com/en) and utilizing the [Binance Bridge](https://www.bnbchain.org/en/bridge). You can refer to the Binance Academy article "[How to Get Started with BSC](https://academy.binance.com/en/articles/how-to-get-started-with-binance-smart-chain-bsc)" for more information. + +{% hint style="warning" %} +In case you opt for an alternative bridge option and intend to transfer tokens to Binance, it is **crucial** to ensure that the contract address you are sending the tokens to is correct. + +Binance deposit +{% endhint %} + +### Polygon (ex Matic) Bridge + +The Polygon Network (previously known as Matic) offers a [bridge](https://wallet.polygon.technology/bridge/), which lets you easily transfer digital assets between Ethereum and Polygon blockchains and a dedicated [wallet](https://wallet.polygon.technology/) designed for this purpose, which can be linked to your account through Metamask or other compatible wallets. + +If you prefer a video tutorial, here is one available for you. Otherwise, you can follow the steps below. + +{% embed url="https://www.youtube.com/watch?v=W5eIipUHl-w" %} + +All you need to do is click on the [wallet](https://wallet.polygon.technology/) link, select your preferred method of connection, and log in to get started. In this guide, we'll be using Metamask to connect the wallet. + +
Polygon login options

Login options

+ +You might come across the name "Matic" in some places instead of "Polygon" because the network is still using its old brand name in certain instances. Don't worry though, it's the same network whether you see Matic or Polygon. + +Check out this [blog post](https://blog.oceanprotocol.com/ocean-on-polygon-network-8abad19cbf47) for more details. + +#### Deposit Tokens + +When you access the wallet's main page, you'll be able to view all the tokens you possess on the Polygon Mainnet. If you want to deposit tokens (i.e., transfer them from the Ethereum Mainnet), there are two ways to do it: you can either click the "deposit" button for a specific token or use the "Move funds from Ethereum to Polygon" option. + +![Main wallet page](../.gitbook/assets/polygon-wallet-page.png) + +In case you are unable to find OCEAN in the list while depositing, simply click on "Manage token list" and enable the Polygon Tokens option, which contains a greater number of listed tokens. This will add Ocean to the tokens list. + +![Ocean on Polygon](../.gitbook/assets/polygon-ocean.png) + +Both of these options will redirect you to the bridge interface. If you select the second option, you'll need to use the dropdown menu to choose the token that you wish to transfer from the Ethereum Mainnet. + +![Bridge interface](../.gitbook/assets/polygon-bridge.png) + +Select the number of tokens you want to transfer and hit the "Transfer" button. The bridge interface provided by Polygon will guide you through all the necessary steps, including signing two transactions on the Ethereum Mainnet. The first transaction involves giving permission for the tokens to be traded on Polygon's bridge, while the second transaction is the actual deposit. + +#### Withdraw Tokens + +The process of withdrawing tokens also utilizes the bridge interface, but this time the withdrawal will happen from Polygon to the Ethereum Mainnet. The bridge interface will guide you through all the necessary steps for this process as well. + +For more detailed information about depositing and withdrawing actions, you can refer to the official Polygon [documentation](https://wiki.polygon.technology/docs/develop/ethereum-polygon/plasma/eth/). + +#### Sending Tokens + +Unlike the first two cases where transactions are signed on the Ethereum Mainnet, transferring tokens between two Matic addresses occurs on the Polygon Mainnet. As a result, it's necessary to connect to the Polygon network in order to sign these transactions. Setting up the network on Metamask can be done in several ways. + +The easiest one is to go to the [polygon network explorer](https://polygonscan.com/) and tap the "Add polygon network" button. + +
+ +Alternatively, you can manually configure the network on Metamask by using the following parameters. To learn how to set up a custom network in Metamask using these values, you can refer to this [guide](https://github.com/oceanprotocol/docs/blob/node-release/discover/wallets/metamask-setup.md#set-up-custom-network). + +| What | Value | +| ------------------ | ---------------------------------------------------- | +| Network Name | Polygon | +| RPC | `https://polygon-rpc.com/` | +| Chain Id | `137` | +| Currency Symbol | `MATIC` | +| Block Explorer URL | [`https://polygonscan.com`](https://polygonscan.com) | + +*** + +_Next:_ [_FAQ_](faq.md) + +_Back:_ [_Networks_](networks.md) diff --git a/discover/faq.md b/discover/faq.md index 91ce3a79..f77e7403 100644 --- a/discover/faq.md +++ b/discover/faq.md @@ -1,8 +1,3 @@ ---- -title: FAQs -description: ---- - # FAQ Have some questions about Ocean Protocol? @@ -12,6 +7,7 @@ Hopefully, you'll find the answers here! If not then please don't hesitate to re ## General
+ How is Ocean Protocol related to AI? Modern Artificial Intelligence (AI) models require vast amounts of training data. @@ -21,24 +17,28 @@ In fact, _every stage_ in the AI modeling life cycle is about data: raw training Ocean's all about managing data: getting it, sharing it, selling it, and making $ from it -- all with Web3 benefits like decentralized control, data provenance, privacy, sovereign control, and more. Thus, Ocean helps manage data all along the AI model life cycle: -- Ocean helps with raw training data -- Ocean helps with cleaned data & feature vectors -- Ocean helps with trained models as data -- Ocean helps with model predictions as data -A great example is [Ocean Predictoor](../predictoor/), where user make $ from their model predictions in a decentralized, private fashion. +* Ocean helps with raw training data +* Ocean helps with cleaned data & feature vectors +* Ocean helps with trained models as data +* Ocean helps with model predictions as data + +A great example is [Ocean Predictoor](../predictoor.md), where user make $ from their model predictions in a decentralized, private fashion.
+ How is Ocean Protocol aiming to start a new Data Economy? Ocean Protocol's mission is to develop tools and services that facilitate the emergence of a new Data Economy. This new economy aims to empower data owners with control, maintain privacy, and catalyze the commercialization of data, including the establishment of data marketplaces. To understand more about Ocean's vision, check out this [blog post](https://blog.oceanprotocol.com/mission-values-for-ocean-protocol-aba998e95b8). +
+ How does Ocean Protocol generate revenue? The protocol generates revenue through transaction fees. These fees serve multiple purposes: they fund the ongoing development of Ocean technology and support the buy-and-burn process of the OCEAN. @@ -46,24 +46,26 @@ The protocol generates revenue through transaction fees. These fees serve multip To get a glimpse of the revenue generated on the Polygon network, which is the most frequently used network, you can find detailed information [here](https://polygonscan.com/address/0x042BFbd88c3998282153088604207b2AeF045b43#tokentxns). To monitor burned tokens, visit [etherscan](https://etherscan.io/token/0x967da4048cd07ab37855c090aaf366e4ce1b9f48?a=0x000000000000000000000000000000000000dead). As of September 2023, approximately 1.4 million tokens have been burned. 🔥📈 +
+ How decentralized is Ocean? To be fully decentralized means no single point of control, at any level of the stack. -- OCEAN is already fully decentralized. -- The Ocean core tech stack is already fully decentralized too: smart contracts on permissionless chains, and anyone can run support middleware. -- Predictoor is fully decentralized. -- Data Farming has some centralized components; we aim to decentralize those in the next 12-24 months. ⁣ - -
+* OCEAN is already fully decentralized. +* The Ocean core tech stack is already fully decentralized too: smart contracts on permissionless chains, and anyone can run support middleware. +* Predictoor is fully decentralized. +* Data Farming has some centralized components; we aim to decentralize those in the next 12-24 months. ⁣ +
## About OCEAN
+ How is OCEAN used? How does it capture value? OCEAN has mechanics to increase demand and reduce supply. @@ -73,59 +75,73 @@ OCEAN is used to stake on data for curation, to buy & sell data, and more. The [ OCEAN can be locked into veOCEAN; veOCEAN holders receive Data Farming rewards. The rewards increase demand for OCEAN; and locking veOCEAN reduces near-term supply of OCEAN. For each consume transaction, a small fee goes to the Ocean community, which in turn goes to buy back OCEAN and burn it (buy-and-burn). This reduces supply permanently. +
+ What is the total supply of OCEAN? 1.41 Billion OCEAN. +
+ What is the circulating supply of OCEAN? What is the emission schedule for OCEAN? All OCEAN have been [minted](https://blog.oceanprotocol.com/control-over-the-ocean-contract-to-be-revoked-soon-overview-6c5b15be2db). There are more than 540 million OCEAN in circulation; the [OCEAN page](https://oceanprotocol.com/about-us/ocean-token) has the precise number. -The remaining tokens emit over decades, mostly for Ocean Data Farming. The [Emissions & APYs page](../data-farming/apys-guide.md) has details. +The remaining tokens emit over decades, mostly for Ocean Data Farming. The [Emissions & APYs page](https://github.com/oceanprotocol/docs/blob/node-release/data-farming/apys-guide.md) has details. +
+ Can OCEAN supply become deflationary? A portion of the revenue earned in the Ocean ecosystem is earmarked for buy-and-burn. If the transaction volume on Ocean reaches scale and is broadly adopted to the point where the buy-burn mechanism outruns the emissions of OCEAN, the supply would deflate. +
+ Does OCEAN also have governance functionality? During the OceanDAO grants program (2021-2022), OCEAN was used for community voting and governance. Currently, there are no governance functions associated with the token. +
- Which blockchain network currently has the highest liquidity for OCEAN? -Ethereum mainnet. +Which blockchain network currently has the highest liquidity for OCEAN? + +Ethereum mainnet. +
+ Can the Ocean tech stack be used without OCEAN? -All Ocean modules and components are open-source and freely available to the community. Developers can change the default currency from OCEAN to a different one for their dApp. +All Ocean modules and components are open-source and freely available to the community. Developers can change the default currency from OCEAN to a different one for their dApp.
+ How does the ecosystem and the token benefit from the usage of the open-source tech stack when transactions can be paid in any currency? For each consume transaction, the Ocean community gets a small fee. This happens whether OCEAN is used or not. [Here are details](../developers/contracts/fees.md). -
+
## Grants, challenges, and ecosystem
+ Is Acentrik from Mercedes Benz built on top of Ocean? 3rd party markets such as Gaia-X, BDP and Acentrik use Ocean components to power their marketplace. They will likely use another currency for the exchange of services. If these marketplaces are publicly accessible, indexable and abide by the fee structure set out by Ocean Protocol, transaction fees would be remitted back to the Ocean community. These transaction fees would be allocated according to plan set out [here](https://blog.oceanprotocol.com/ocean-token-model-3e4e7af210f9). @@ -133,48 +149,55 @@ For each consume transaction, the Ocean community gets a small fee. This happens
+ What is Ocean Shipyard? Ocean Shipyard is an early-stage grant program established to fund the next generation of Web3 dApps built on Ocean Protocol. It is made for entrepreneurs looking to build Web3 solutions on Ocean, make valuable data available, build innovations, and create value for the Ocean ecosystem. The [Shipyard page](https://oceanprotocol.com/shipyard) has details. +
+ Where can we see previous data challenges and submitted solutions? You can find a list of past data challenges on the [website](https://oceanprotocol.com/challenges). +
+ What are the steps needed to encourage people to use the Ocean ecosystem? There are a wide host of technical, business, and cultural barriers to overcome before volume sales can scale. Blockchain and crypto technology are relatively new and adopted by a niche group of enthusiasts. On top, the concept of a Data Economy is still nascent. Data buyers are generally restricted to data scientists, researchers, or large corporations, while data providers are mainly corporations and government entities. The commercialization of data is still novel and the processes are being developed and refined. -
+
## Data security -
+ Is my data secure? -Yes. Ocean Protocol understands that some data is too sensitive to be shared — potentially due to GDPR or other reasons. For these types of datasets, we offer a unique service called [compute-to-data](../developers/compute-to-data/README.md). This enables you to monetize the dataset that sits behind a firewall without ever revealing the raw data to the consumer. For example, researchers and data scientists pay to run their algorithms on the data set, and the computation is performed behind a firewall; all the researchers or data scientists receive is the results generated by their algorithm. -
+Yes. Ocean Protocol understands that some data is too sensitive to be shared — potentially due to GDPR or other reasons. For these types of datasets, we offer a unique service called [compute-to-data](../developers/compute-to-data/). This enables you to monetize the dataset that sits behind a firewall without ever revealing the raw data to the consumer. For example, researchers and data scientists pay to run their algorithms on the data set, and the computation is performed behind a firewall; all the researchers or data scientists receive is the results generated by their algorithm. +
+ How does Ocean Protocol enforce penalties if data is shared without permission? -Determining whether someone has downloaded your data and is reselling it is quite challenging. While they are bound by a contract not to do so, it's practically impossible to monitor their actions. If you want to maintain the privacy of your dataset, you can explore the option of using compute-to-data(C2D). Via C2D your data remains private and people can only run algorithms(that you approve of) to extract intelligence. +Determining whether someone has downloaded your data and is reselling it is quite challenging. While they are bound by a contract not to do so, it's practically impossible to monitor their actions. If you want to maintain the privacy of your dataset, you can explore the option of using compute-to-data(C2D). Via C2D your data remains private and people can only run algorithms(that you approve of) to extract intelligence. This issue is similar to what any digital distribution platform faces. For instance, can Netflix prevent individuals from downloading and redistributing their content? Not entirely. They invest significant resources in security, but ultimately, complete prevention is extremely difficult. They mainly focus on making it more challenging for such activities to occur. -
+
## Data marketplaces & Ocean Market
+ What is a decentralized data marketplace? A data marketplace allows providers to publish data and buyers to consume data. @@ -184,36 +207,39 @@ Unlike centralized data marketplaces, decentralized ones give users more control Ocean Market is a reference decentralized data marketplace powered by Ocean stack. Ocean Compute-to-Data (C2D) enables data and algorithms can be ingested into secure Docker containers where escapes are avoided, protecting both the data and algorithms. C2D can be used from Ocean Market. +
+ Is there a website or platform that tracks the consume volume of Ocean Market? +Yes. See [autobotocean.com](https://autobotocean.com/). -Yes. See [autobotocean.com](https://autobotocean.com/).
+ Since Ocean Market is open source, what are the future plans for the project in terms of its economic direction? Ocean Market is a showcase for the practical application of Ocean, showing others what a decentralized data marketplace look like. -Fees are generated Ocean Market from Ocean Market that head to Ocean community. The earlier Q&A on revenue has details. +Fees are generated Ocean Market from Ocean Market that head to Ocean community. The earlier Q\&A on revenue has details. +
## Contacting Ocean core team
+ Who is the right person to talk to regarding a marketing proposal or collaboration? -For collaborations, please fill in this [form](https://docs.google.com/forms/d/e/1FAIpQLSdBz7cblsz5yuOKMVoPVfK0Pp1Xuqjwner1kCkRibIIbYMe-w/viewform). -One member of our team will reach out to you 🤝 +For collaborations, please fill in this [form](https://docs.google.com/forms/d/e/1FAIpQLSdBz7cblsz5yuOKMVoPVfK0Pp1Xuqjwner1kCkRibIIbYMe-w/viewform). One member of our team will reach out to you 🤝 +
+*** ----- - -_Next: [Glossary](glossary.md)_ - -_Back: [Bridges](networks/bridges.md)_ +_Next:_ [_Glossary_](glossary.md) +_Back:_ [_Bridges_](bridges.md) diff --git a/discover/glossary.md b/discover/glossary.md index c0e917a9..32c0e674 100644 --- a/discover/glossary.md +++ b/discover/glossary.md @@ -1,6 +1,5 @@ --- -description: >- - Key terms, concepts, and acronyms used in Ocean +description: Key terms, concepts, and acronyms used in Ocean --- # Glossary @@ -10,6 +9,7 @@ description: >-
Ocean Protocol + Ocean Protocol is a decentralized data exchange protocol that enables individuals and organizations to share, sell, and consume data in a secure, transparent, and privacy-preserving manner. The protocol is designed to address the current challenges in data sharing, such as data silos, lack of interoperability, and data privacy concerns. Ocean Protocol uses blockchain technology, smart contracts, and cryptographic techniques to create a network where data providers can offer their data assets for sale, data consumers can purchase and access the data, and developers can build data-driven applications and services on top of the protocol.
@@ -84,7 +84,7 @@ In exchange for locking tokens, users can earn rewards. The amount of reward dep Ocean Data Farming (DF) -[Ocean Data Farming (DF)](https://df.oceandao.org/) incentivizes for growth of Data Consume Volume (DCV) in the Ocean ecosystem. [DF](../data-farming/README.md) is like DeFi liquidity mining, but tuned for DCV. DF emits OCEAN for passive rewards and active rewards. +[Ocean Data Farming (DF)](https://df.oceandao.org/) incentivizes for growth of Data Consume Volume (DCV) in the Ocean ecosystem. [DF](../archive/data-farming/) is like DeFi liquidity mining, but tuned for DCV. DF emits OCEAN for passive rewards and active rewards. * As a veOCEAN holder, you get _passive_ rewards by default. * If you _actively_ curate data by allocating veOCEAN towards data assets with high Data Consume Volume (DCV), then you can earn more. @@ -95,7 +95,7 @@ In exchange for locking tokens, users can earn rewards. The amount of reward dep Passive Rewards -When a user locks their OCEAN for a finite period of time, they get veOCEAN in return. Based on the quantity of veOCEAN, the user accumulates weekly OCEAN rewards. Because rewards are generated without human intervention, these are called [Passive Rewards](../data-farming/README.md). OCEAN Data Farming Passive Rewards are claimable every Thursday on the [Rewards page](https://df.oceandao.org/rewards). +When a user locks their OCEAN for a finite period of time, they get veOCEAN in return. Based on the quantity of veOCEAN, the user accumulates weekly OCEAN rewards. Because rewards are generated without human intervention, these are called [Passive Rewards](../archive/data-farming/). OCEAN Data Farming Passive Rewards are claimable every Thursday on the [Rewards page](https://df.oceandao.org/rewards).
@@ -103,7 +103,7 @@ When a user locks their OCEAN for a finite period of time, they get veOCEAN in r Volume DF -When a user allocates veOCEAN to Ocean Market projects, then weekly OCEAN rewards are given to a user based on the sales of those projects. Since these rewards depend on human intervention to decide the allocations, these are categorized as [Volume DF](../data-farming/README.md) rewards. OCEAN Data Farming Volume DF rewards are claimable every Thursday on the [Rewards page](https://df.oceandao.org/rewards). +When a user allocates veOCEAN to Ocean Market projects, then weekly OCEAN rewards are given to a user based on the sales of those projects. Since these rewards depend on human intervention to decide the allocations, these are categorized as [Volume DF](../archive/data-farming/) rewards. OCEAN Data Farming Volume DF rewards are claimable every Thursday on the [Rewards page](https://df.oceandao.org/rewards).
@@ -149,7 +149,6 @@ Transfer one (of many) sub-licenses to new licensee: ERC20.transfer(to=licensee,
- ## Web3 Fundamentals
@@ -420,15 +419,10 @@ Machine learning is a subfield of artificial intelligence (AI) that involves tea
- ----- - +*** Congrats! You've completed this quick introduction to Ocean. -_Next: Jump to [Docs main](../README.md) and click on your interest._ - -_Back: [FAQ](faq.md)_ - - +_Next: Jump to_ [_Docs main_](../) _and click on your interest._ +_Back:_ [_FAQ_](faq.md) diff --git a/discover/networks.md b/discover/networks.md new file mode 100644 index 00000000..9850e115 --- /dev/null +++ b/discover/networks.md @@ -0,0 +1,169 @@ +--- +description: All the public networks the Ocean Protocol contracts are deployed to. +--- + +# Networks + +Ocean Protocol's smart contracts and [OCEAN](ocean-token.md) are deployed on multiple public networks: several production chains, and several testnets too. + +The file [`address.json`](https://github.com/oceanprotocol/contracts/blob/v4main/addresses/address.json) holds up-to-date deployment addresses for all Ocean contracts. + +On tokens: + +* You need the network's native token to pay for gas to make transactions: ETH for Ethereum mainnet, MATIC for Polygon, etc. You typically get these from exchanges. +* You may get OCEAN from an exchange, and bridge it as needed. +* For testnets, you'll need "fake" native tokens to pay for gas, and "fake" OCEAN. Typically, you get these from faucets. +* Below, we give token-related instructions, for each network. + +## Networks Summary + +Here are the networks that Ocean is deployed to. + +**Production Networks:** + +* Ethereum mainnet +* Polygon mainnet +* Oasis Sapphire mainnet +* BNB Smart Chain +* Energy Web Chain +* Optimism (OP) Mainnet +* Moonriver + +**Test Networks:** + +* Görli +* Sepolia +* Oasis Sapphire testnet +* Optimism (OP) Sepolia + +The rest of this doc gives details for each network. You can skip it until you need the reference information. + +## Production Networks + +### Ethereum Mainnet + +| Native token | ETH | +| ------------- | ------------------------------------------------------------------------------------------------------------------- | +| OCEAN address | [0x967da4048cD07aB37855c090aAF366e4ce1b9F48](https://etherscan.io/token/0x967da4048cD07aB37855c090aAF366e4ce1b9F48) | +| Explorer | [https://etherscan.io](https://etherscan.io) | + +**Wallet.** To connect to Ethereum mainnet with e.g. MetaMask, click on the network name dropdown and select "Ethereum mainnet" from the list. + +### Polygon Mainnet + +| Native token | MATIC | +| ------------- | ---------------------------------------------------------------------------------------------------------------------- | +| OCEAN address | [0x282d8efCe846A88B159800bd4130ad77443Fa1A1](https://polygonscan.com/token/0x282d8efce846a88b159800bd4130ad77443fa1a1) | +| Explorer | [https://polygonscan.com](https://polygonscan.com) | + +**Wallet.** If you can't find Polygon Mainnet as a predefined network, follow [Polygon's guide](https://wiki.polygon.technology/docs/develop/metamask/config-polygon-on-metamask/#add-the-polygon-network-manually). + +**Bridge.** Follow the [Polygon Bridge guide](bridges.md) in our docs. + +### Oasis Sapphire Mainnet + +[Ocean Predictoor](../predictoor.md) is deployed on Oasis Sapphire mainnet for its ability to keep EVM transactions private. This deployment does do not currently support ocean.js, ocean.py, or Ocean Market. + +| Native token | ROSE | +| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| OCEAN address | [0x39d22B78A7651A76Ffbde2aaAB5FD92666Aca520](https://explorer.oasis.io/mainnet/sapphire/token/0x39d22B78A7651A76Ffbde2aaAB5FD92666Aca520) | +| Explorer | [https://explorer.oasis.io/mainnet/sapphire](https://explorer.oasis.io/mainnet/sapphire/) | + +**Wallet.** If you cannot find Oasis Sapphire Mainnet as a predefined network, fyou can manually connect by entering the following during import: Network Name: `Oasis Sapphire`, RPC URL: `https://sapphire.oasis.io`, Chain ID: `23294`, Token: `ROSE`. For further info, see [Oasis tokens docs](https://docs.oasis.io/general/manage-tokens/). + +**Bridge.** Use [Celer](https://cbridge.celer.network/1/23294/OCEAN) to bridge OCEAN from Ethereum mainnet to Oasis Sapphire mainnet. + +### BNB Smart Chain + +| Native token | BSC BNB | +| ------------- | ------------------------------------------------------------------------------------------------------------------ | +| OCEAN address | [0xdce07662ca8ebc241316a15b611c89711414dd1a](https://bscscan.com/token/0xdce07662ca8ebc241316a15b611c89711414dd1a) | +| Explorer | [https://bscscan.com/](https://bscscan.com/) | + +This is one of the [Binance](https://binance.com)-spawned chains. BNB is the token of Binance. + +**Wallet.** If BNB Smart Chain is not listed as a predefined network in your wallet, see [Binance's Guide](https://academy.binance.com/en/articles/connecting-metamask-to-binance-smart-chain) to manually connect. + +**Bridge.** Our [BNB Smart Chain Bridge Guide](bridges.md#bnb-smart-chain-bridge) describes how to get OCEAN to BNB Smart Chain. + +### Energy Web Chain (EWC) + +| Native token | Energy Web Chain EWT | +| ------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| OCEAN address | [0x593122aae80a6fc3183b2ac0c4ab3336debee528](https://explorer.energyweb.org/token/0x593122aae80a6fc3183b2ac0c4ab3336debee528) | +| Explorer | [https://explorer.energyweb.org/](https://explorer.energyweb.org/) | + +This is the chain for [Energy Web Foundation](https://www.energyweb.org/). + +**Wallet.** If you cannot find Energy Web Chain as a predefined network in your wallet, you can manually connect to it by following this [guide](https://energy-web-foundation.gitbook.io/energy-web/how-tos-and-tutorials/connect-to-energy-web-chain-main-network-with-metamash). + +**Bridge.** To bridge assets between Ethereum Mainnet and Energy Web Chain and Ethereum mainnet, you can use [Omni bridge by Carbonswap](https://bridge.carbonswap.exchange/). + +### Optimism (OP) Mainnet + +| Native token | ETH | +| ------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| OCEAN address | [0x2561aa2bB1d2Eb6629EDd7b0938d7679B8b49f9E](https://optimistic.etherscan.io/address/0x2561aa2bB1d2Eb6629EDd7b0938d7679B8b49f9E) | +| Explorer | [https://optimistic.etherscan.io](https://optimistic.etherscan.io) | + +**Wallet.** If you cannot find Optimism as a predefined network in your wallet, you can manually connect to with [this OP guide](https://community.optimism.io/docs/useful-tools/networks/#op-mainnet). + +**Bridge.** Follow the [OP Bridge guide](https://docs.optimism.io/builders/dapp-developers/bridging/standard-bridge). + +### Moonriver + +| Native token | Moonriver MOVR | +| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| OCEAN address | [0x99C409E5f62E4bd2AC142f17caFb6810B8F0BAAE](https://blockscout.moonriver.moonbeam.network/token/0x99C409E5f62E4bd2AC142f17caFb6810B8F0BAAE/token-transfers) | +| Explorer | [https://blockscout.moonriver.moonbeam.network](https://blockscout.moonriver.moonbeam.network) | + +[Moonriver](https://moonbeam.network/networks/moonriver/) is an EVM-based parachain of Kusama. + +**Wallet.** If Moonriver is not listed as a predefined network in your wallet, you can manually connect to it by following [Moonriver's guide](https://docs.moonbeam.network/builders/get-started/networks/moonriver/#connect-metamask). + +**Bridge.** To bridge assets between Moonriver and Ethereum mainnet, you can use the [Celer](https://cbridge.celer.network/bridge/moonriver-ethereum/). + +## Test Networks + +Unlike production networks, tokens on test networks do not hold real economic value. + +### Sepolia + +| Native token | Sepolia (fake) ETH | +| ------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| Native token faucet | [Here](https://sepoliafaucet.com/) | +| OCEAN address | [0x1B083D8584dd3e6Ff37d04a6e7e82b5F622f3985](https://sepolia.etherscan.io/address/0x1B083D8584dd3e6Ff37d04a6e7e82b5F622f3985) | +| OCEAN faucet | [Here](https://faucet.sepolia.oceanprotocol.com/) | +| Explorer | [https://sepolia.etherscan.io](https://sepolia.etherscan.io/) | + +**Wallet.** To connect with e.g. MetaMask, select "Sepolia" from the network dropdown list(enable "Show test networks"). + +### Oasis Sapphire Testnet + +[Ocean Predictoor](../predictoor.md) is deployed on Oasis Sapphire testnet. This deployment does do not currently support ocean.js, ocean.py, or Ocean Market. + +| Native token | (fake) ROSE | +| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| Native token faucet | [Here](https://github.com/oceanprotocol/pdr-backend/blob/main/READMEs/testnet-faucet.md#get-fake-rose-on-sapphire-testnet) | +| OCEAN address | [0x973e69303259B0c2543a38665122b773D28405fB](https://explorer.oasis.io/testnet/sapphire/address/0x973e69303259B0c2543a38665122b773D28405fB) | +| OCEAN faucet | [Here](https://github.com/oceanprotocol/pdr-backend/blob/main/READMEs/testnet-faucet.md#get-fake-ocean-on-sapphire-testnet) | +| Explorer | [https://explorer.oasis.io/testnet/sapphire](https://explorer.oasis.io/testnet/sapphire/) | + +**Wallet.** If you cannot find Oasis Sapphire Testnet as a predefined network, you can manually connect to it by entering the following during import: Network Name: `Oasis Sapphire Testnet`, RPC URL: `https://testnet.sapphire.oasis.dev`, Chain ID: `23295`, Token: `ROSE`. For further info, see [Oasis tokens docs](https://docs.oasis.io/general/manage-tokens/). + +### Optimism (OP) Sepolia + +| Native token | Sepolia (fake) ETH | +| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| Native token faucet | [Here](https://faucet.quicknode.com/optimism/sepolia) | +| OCEAN address | [0xf26c6C93f9f1d725e149d95f8E7B2334a406aD10](https://sepolia-optimism.etherscan.io/address/0xf26c6c93f9f1d725e149d95f8e7b2334a406ad10) | +| OCEAN faucet | [Here](https://faucet.op-sepolia.oceanprotocol.com/) | +| Explorer | [https://sepolia-optimism.etherscan.io](https://sepolia-optimism.etherscan.io/) | + +**Wallet.** If OP Sepolia is not listed as a predefined network, follow [OP's Guide](https://community.optimism.io/docs/useful-tools/networks/#op-sepolia). + +*** + +_Next:_ [_Bridges_](bridges.md) + +_Back:_ [_OCEAN: the Ocean token_](ocean-token.md) diff --git a/discover/ocean-token.md b/discover/ocean-token.md index 04ec3fcc..eeb362e7 100644 --- a/discover/ocean-token.md +++ b/discover/ocean-token.md @@ -1,30 +1,30 @@ ---- -description: ---- - -# OCEAN: The Ocean Token +# OCEAN: The Ocean token OCEAN is a utility token. It's used to stake on data for curation, buy & sell data, and more. Its supply is disbursed over time to drive near-term growth and long-term sustainability. **Contents:** -- Getting and storing OCEAN -- Staking OCEAN -- OCEAN supply -- Token design -- OCEAN addresses -
+* Getting and storing OCEAN +* Staking OCEAN +* OCEAN supply +* Token design +* OCEAN addresses +
+ +
+ +
## Getting and Storing OCEAN -OCEAN is available on most leading CEXes and DEXes. The [Ocean Token page at oceanprotocol.com](https://oceanprotocol.com/about-us/ocean-token) has details. +OCEAN is available on most leading CEXes and DEXes. The [Ocean Token page at oceanprotocol.com](https://oceanprotocol.com/about-us/ocean-token) has details. -The [Wallets User Guide](../user-guides/wallets/README.md) here in Ocean docs shows how to set up wallets and store OCEAN. +The [Wallets User Guide](../user-guides/wallets/) here in Ocean docs shows how to set up wallets and store OCEAN. ## Staking OCEAN -You can lock OCEAN and earn rewards via [Ocean Data Farming](../data-farming/README.md). +You can lock OCEAN and earn rewards via [Ocean Data Farming](../archive/data-farming/). ## OCEAN supply @@ -32,10 +32,10 @@ Total # tokens: 1.41B. All tokens are minted; all control is [revoked](https://b OCEAN supply is divided as follows: -- 51% (719.1M OCEAN) - to Data Farming and incentives programs. Distributed via vesting: burn-in period then 4-year half-life. For [Data Farming: Reward Schedule](../data-farming/reward-schedule.md) docs. -- 15% (211.5M OCEAN) - to Ocean community (grants, more) and foundation operations. -- 10% (141.0M OCEAN) - to the founding company, and in turn to its investors, employees & operations -- 24% (338.4M OCEAN) - to token acquirors. This completed in early 2019. All acquiror vesting is complete as well. +* 51% (719.1M OCEAN) - to Data Farming and incentives programs. Distributed via vesting: burn-in period then 4-year half-life. For [Data Farming: Reward Schedule](https://github.com/oceanprotocol/docs/blob/node-release/data-farming/reward-schedule.md) docs. +* 15% (211.5M OCEAN) - to Ocean community (grants, more) and foundation operations. +* 10% (141.0M OCEAN) - to the founding company, and in turn to its investors, employees & operations +* 24% (338.4M OCEAN) - to token acquirors. This completed in early 2019. All acquiror vesting is complete as well. ## OCEAN Token Design @@ -45,16 +45,20 @@ This design gives flexibility to adapt the Ocean products for traction and growt In the design, a % of revenue is used to buy back & burn OCEAN. The remaining % drives growth. -
+
+ +
+ +
## OCEAN on Networks The "root" OCEAN token is deployed on Ethereum mainnet with address [`0x967da4048cd07ab37855c090aaf366e4ce1b9f48`](https://etherscan.io/token/0x967da4048cd07ab37855c090aaf366e4ce1b9f48). -The OCEAN token has bridges to several other chains. The [Networks docs](networks/README.md) give the address of OCEAN on each network, and how to get OCEAN on each of those networks. +The OCEAN token has bridges to several other chains. The [Networks docs](networks.md) give the address of OCEAN on each network, and how to get OCEAN on each of those networks. ----- +*** -_Next: [Networks](networks/README.md)_ +_Next:_ [_Networks_](networks.md) -_Back: [What can you do with Ocean?](benefits.md)_ +_Back:_ [_What can you do with Ocean?_](benefits.md) diff --git a/discover/what-is-ocean.md b/discover/what-is-ocean.md index b72d3549..fc6b1101 100644 --- a/discover/what-is-ocean.md +++ b/discover/what-is-ocean.md @@ -1,71 +1,87 @@ ---- -description: ---- +# What is Ocean? -
+
-## What is Ocean? +
+ +
+ +### What is Ocean? Ocean is a decentralized data exchange protocol. AI lives on data; Ocean facilitates it. Ocean has two specific parts: -- A live tech stack. At the core is **Datatokens** and **Compute-to-Data** -- A lively community. This includes **builders, data scientists, OCEAN holders**, and **Ocean Ambassadors**. Ocean's community is active on **social media**. + +* A live tech stack. At the core is **Datatokens** and **Compute-to-Data** +* A lively community. This includes **builders, data scientists, OCEAN holders**, and **Ocean Ambassadors**. Ocean's community is active on **social media**. Let's drill into each. -## Tech: Ocean data NFTs and datatokens +### Tech: Ocean data NFTs and datatokens These enable decentralized access control, via token-gating. Key principles: -- Publish data services as ERC721 data NFTs and ERC20 datatokens -- You can access the dataset / data service if you hold 1.0 datatokens -- Consuming data services = spending datatokens +* Publish data services as ERC721 data NFTs and ERC20 datatokens +* You can access the dataset / data service if you hold 1.0 datatokens +* Consuming data services = spending datatokens Crypto wallets, exchanges, and DAOs become _data_ wallets, exchanges, and DAOs.
-

Data NFTs & datatokens are an on-ramp and off-ramp for data assets into DeFi
+ +

Data NFTs & datatokens are an on-ramp and off-ramp for data assets into DeFi

+
Data can be on Azure or AWS, Filecoin or Arweave, REST APIs or smart contract feeds. Data may be raw AI training data, feature vectors, trained models, even AI model predictions, or non-AI data. -## Tech: Ocean Compute-to-Data +### Tech: Ocean Compute-to-Data This enables one buy & sell private data, while preserving privacy -- Private data is valuable: using it can improve research and business outcomes. But concerns over privacy and control make it hard to access. -- Compute-to-Data (C2D) grants access run compute against the data, _on the same premises of the data_. Only the results are visible to the consumer. The data never leaves the premises. Decentralized blockchain technology does the handshaking. -- C2D enables people to sell private data while preserving privacy, as an opportunity for companies to monetize their data assets. -- C2D can also be used for data sharing in science or technology contexts, with lower liability risk, because the data doesn't move. + +* Private data is valuable: using it can improve research and business outcomes. But concerns over privacy and control make it hard to access. +* Compute-to-Data (C2D) grants access run compute against the data, _on the same premises of the data_. Only the results are visible to the consumer. The data never leaves the premises. Decentralized blockchain technology does the handshaking. +* C2D enables people to sell private data while preserving privacy, as an opportunity for companies to monetize their data assets. +* C2D can also be used for data sharing in science or technology contexts, with lower liability risk, because the data doesn't move.
-

Compute-to-Data flow
+ +

Compute-to-Data flow

+
-## Community: Ocean Ecosystem +### Community: Ocean Ecosystem Ocean has a lively [ecosystem](https://oceanprotocol.com/explore/ecosystem) of dapps grown over years, built by enthusiastic developers. -
+
+ +
+ +
The Ocean ecosystem also contains many data scientists and OCEAN holders, excited about the future of AI & data. You can find them doing predictions, data challenges, Data Farming, and more. -## Community: Ocean Ambassadors +### Community: Ocean Ambassadors Ocean has an excellent [community of ambassadors](https://oceanprotocol.com/explore/community). Anyone can join. -
+
-## Community: Social Media +
-Follow Ocean on [Twitter](https://twitter.com/OceanProtocol) or [Telegram](https://t.me/oceanprotocol_community) to keep up to date. Chat directly with the Ocean community on [Discord](https://discord.gg/TnXjkR5). Or, track Ocean progress directly on [GitHub](https://github.com/oceanprotocol). +
+ +### Community: Social Media + +Follow Ocean on [Twitter](https://twitter.com/OceanProtocol) or [Telegram](https://t.me/oceanprotocol\_community) to keep up to date. Chat directly with the Ocean community on [Discord](https://discord.gg/TnXjkR5). Or, track Ocean progress directly on [GitHub](https://github.com/oceanprotocol). Finally, the [Ocean blog](https://blog.oceanprotocol.com/) has regular updates. ----- +*** -_Next: [What can you do with Ocean?](benefits.md)_ +_Next:_ [_What can you do with Ocean?_](benefits.md) -_Back: [Why Ocean?](why-ocean.md)_ \ No newline at end of file +_Back:_ [_Why Ocean?_](why-ocean.md) diff --git a/discover/why-ocean.md b/discover/why-ocean.md index ba623fe4..f404114a 100644 --- a/discover/why-ocean.md +++ b/discover/why-ocean.md @@ -1,17 +1,13 @@ ---- -description: ---- - -### Why Ocean? +# Why Ocean? Ocean was founded to level the playing field for AI and data. {% embed url="https://youtu.be/4P72ZelkEpQ" %} -To dive deeper, see [this blog](https://blog.oceanprotocol.com/from-ai-to-blockchain-to-data-meet-ocean-f210ff460465) or [this video](https://youtu.be/XN_PHg1K61w). +To dive deeper, see [this blog](https://blog.oceanprotocol.com/from-ai-to-blockchain-to-data-meet-ocean-f210ff460465) or [this video](https://youtu.be/XN\_PHg1K61w). ----- +*** -_Next: [What is Ocean?](what-is-ocean.md)_ +_Next:_ [_What is Ocean?_](what-is-ocean.md) -_Back: [Discover Ocean: main](README.md)_ \ No newline at end of file +_Back:_ [_Discover Ocean: main_](./) diff --git a/infrastructure/README.md b/infrastructure/README.md index 48d4dde4..dd832580 100644 --- a/infrastructure/README.md +++ b/infrastructure/README.md @@ -1,6 +1,6 @@ --- description: Learn how to deploy Ocean components in your environment. -cover: ../.gitbook/assets/cover/infrastructure_banner.png +cover: ../.gitbook/assets/infrastructure_banner.png coverY: 0 --- @@ -8,7 +8,7 @@ coverY: 0 There are many ways in which the components can be deployed, from simple configurations used for development and testing to complex configurations, used for production systems. -All the Ocean Protocol components ([Provider](../developers/provider/README.md), [Aquarius](../developers/aquarius/README.md), [Subgraph](../developers/subgraph/README.md)) are designed to run in Docker containers, on a Linux operating system. For simple configurations, we rely on Docker Engine and Docker Compose products to deploy and run the components, while for complex configurations we use Kubernetes. The guides included in this section will present both deployment options. +All the Ocean Protocol components ([Provider](../developers/provider/), [Aquarius](../developers/aquarius/), [Subgraph](../developers/subgraph/)) are designed to run in Docker containers, on a Linux operating system. For simple configurations, we rely on Docker Engine and Docker Compose products to deploy and run the components, while for complex configurations we use Kubernetes. The guides included in this section will present both deployment options. Please note that deploying the Ocean components requires a good understanding of: diff --git a/infrastructure/compute-to-data-docker-registry.md b/infrastructure/compute-to-data-docker-registry.md index 6e1255af..b73b9b15 100644 --- a/infrastructure/compute-to-data-docker-registry.md +++ b/infrastructure/compute-to-data-docker-registry.md @@ -1,11 +1,10 @@ --- -title: Setting up private docker registry for Compute-to-Data environment description: >- Learn how to setup your own docker registry and push images for running algorithms in a C2D environment. --- -# C2D - Private Docker Registry +# For C2D, Set Up Private Docker Registry The document is intended for a production setup. The tutorial provides the steps to set up a private docker registry on the server for the following scenarios: @@ -310,5 +309,5 @@ You can publish an algorithm asset with the metadata containing the registry URL ### Further references * [Setup Compute-to-Data environment](compute-to-data-minikube.md) -* [Writing algorithms](../developers//compute-to-data/compute-to-data-algorithms.md) +* [Writing algorithms](../developers/compute-to-data/compute-to-data-algorithms.md) * [C2D example](https://github.com/oceanprotocol/ocean.py/blob/main/READMEs/c2d-flow.md) diff --git a/infrastructure/compute-to-data-minikube.md b/infrastructure/compute-to-data-minikube.md index 73592244..ae7036d1 100644 --- a/infrastructure/compute-to-data-minikube.md +++ b/infrastructure/compute-to-data-minikube.md @@ -1,23 +1,15 @@ ---- -title: Minikube Compute-to-Data Environment ---- - -# Deploying C2D +# Deploy C2D This chapter will present how to deploy the C2D component of the Ocean stack. As mentioned in the [C2D Architecture chapter](../developers/compute-to-data/#architecture-and-overview-guides), the Compute-to-Data component uses Kubernetes to orchestrate the creation and deletion of the pods in which the C2D jobs are run. For the ones that do not have a Kubernetes environment available, we added to this guide instructions on how to install Minikube, which is a lightweight Kubernetes implementation that creates a VM on your local machine and deploys a simple cluster containing only one node. In case you have a Kubernetes environment in place, please skip directly to step 4 of this guide. - - ### Requirements * Communications: a functioning internet-accessible provider service * Hardware: a server capable of running compute jobs (e.g. we used a machine with 8 CPUs, 16 GB Ram, 100GB SSD, and a fast internet connection). See [this guide](setup-server.md) for how to create a server; * Operating system: Ubuntu 22.04 LTS - - ### Steps 1. [Install Docker and Git](compute-to-data-minikube.md#install-docker-and-git) @@ -27,13 +19,12 @@ For the ones that do not have a Kubernetes environment available, we added to th 5. [Download all required files](compute-to-data-minikube.md#download-all-required-files) 6. [Create namespaces](compute-to-data-minikube.md#create-namespaces) 7. [Setup up Postgresql](compute-to-data-minikube.md#setup-up-postgresql) -7. [Run the IPFS host (optional)](compute-to-data-minikube.md#run-the-ipfs-host-optional) -8. [Update the storage class](compute-to-data-minikube.md#update-the-storage-class) -9. [Setup C2D Orchestrator](compute-to-data-minikube.md#setup-c2d-orchestrator) -10. [Setup your first environment](compute-to-data-minikube.md#setup-your-first-environment) -11. [Update Provider](compute-to-data-minikube.md#update-provider) -12. [Automated deployment example](compute-to-data-minikube.md#automated-deployment-example) - +8. [Run the IPFS host (optional)](compute-to-data-minikube.md#run-the-ipfs-host-optional) +9. [Update the storage class](compute-to-data-minikube.md#update-the-storage-class) +10. [Setup C2D Orchestrator](compute-to-data-minikube.md#setup-c2d-orchestrator) +11. [Setup your first environment](compute-to-data-minikube.md#setup-your-first-environment) +12. [Update Provider](compute-to-data-minikube.md#update-provider) +13. [Automated deployment example](compute-to-data-minikube.md#automated-deployment-example) #### Install Docker and Git @@ -106,6 +97,7 @@ For now, communication between different components is made through pgsql. This Edit `operator-service/kubernetes/postgres-configmap.yaml`. Change `POSTGRES_PASSWORD` to a nice long random password. Then deploy pgsql + ```bash kubectl config set-context --current --namespace ocean-operator kubectl create -f operator-service/kubernetes/postgres-configmap.yaml @@ -134,7 +126,7 @@ sudo /bin/sh -c 'echo "127.0.0.1 youripfsserver" >> /etc/hosts' #### Update the storage class -The storage class is used by Kubernetes to create the temporary volumes on which the data used by the algorithm will be stored. +The storage class is used by Kubernetes to create the temporary volumes on which the data used by the algorithm will be stored. Please ensure that your class allocates volumes in the same region and zone where you are running your pods. @@ -166,13 +158,14 @@ volumeBindingMode: Immediate For more information, please visit https://kubernetes.io/docs/concepts/storage/storage-classes/ -If you need to use your own classes, you will need to edit 'operator_engine/kubernetes/operator.yml'. +If you need to use your own classes, you will need to edit 'operator\_engine/kubernetes/operator.yml'. #### Setup C2D Orchestrator C2D Orchestrator (aka operator-service) has two main functions: - - First, it's the outside interface of your C2D Cluster to the world. External components(like Provider) are calling APIs exposed by this - - Secondly, operator-service manages multiple environments and sends the jobs to the right environment. + +* First, it's the outside interface of your C2D Cluster to the world. External components(like Provider) are calling APIs exposed by this +* Secondly, operator-service manages multiple environments and sends the jobs to the right environment. Edit `operator-service/kubernetes/deployment.yaml`. Change `ALLOWED_ADMINS` to a nice long random password. @@ -199,22 +192,22 @@ Alternatively you could use another method to communicate between the C2D Enviro And now it's time to initialize the database. - If your Minikube is running on compute.example.com: ```bash curl -X POST "https://compute.example.com/api/v1/operator/pgsqlinit" -H "accept: application/json" -H "Admin: myAdminPass" ``` + (where myAdminPass is configured in [Setup C2D Orchestrator](compute-to-data-minikube.md#setup-c2d-orchestrator)) Congrats, you have operator-service running. #### Setup your first environment -Let's create our first environment. -Edit `operator-service/kubernetes/deployment.yaml`. - - set OPERATOR_PRIVATE_KEY. This has to be unique among multiple environments. In the future, this will be the account credited with fees. - - optionally change more env variables, to customize your environment. Check the [README](https://github.com/oceanprotocol/operator-engine#customize-your-operator-engine-deployment) section of the operator engine to customize your deployment. At a minimum, you should add your IPFS URLs or AWS settings, and add (or remove) notification URLs. +Let's create our first environment. Edit `operator-service/kubernetes/deployment.yaml`. + +* set OPERATOR\_PRIVATE\_KEY. This has to be unique among multiple environments. In the future, this will be the account credited with fees. +* optionally change more env variables, to customize your environment. Check the [README](https://github.com/oceanprotocol/operator-engine#customize-your-operator-engine-deployment) section of the operator engine to customize your deployment. At a minimum, you should add your IPFS URLs or AWS settings, and add (or remove) notification URLs. Finally, let's deploy it: @@ -231,17 +224,15 @@ kubectl apply -f operator-engine/kubernetes/operator.yml ```bash kubectl -n ocean-compute apply -f /ocean/operator-engine/kubernetes/egress.yaml ``` + Congrats,your c2d environment is running. -If you want to deploy another one, just repeat the steps above, with a different namespace and different OPERATOR_PRIVATE_KEY. - - +If you want to deploy another one, just repeat the steps above, with a different namespace and different OPERATOR\_PRIVATE\_KEY. #### Update Provider Update your existing provider service by updating the `operator_service.url` value in `config.ini`, or set the appropiate ENV variable. - ```ini operator_service.url = https://compute.example.com/ ``` @@ -250,5 +241,4 @@ Restart your provider service. #### Automated deployment example -If your setup is more complex, you can checkout (our automated deployment example)[https://github.com/oceanprotocol/c2d_barge/blob/main/c2d_barge_deployer/docker-entrypoint.sh]. -This script is used by barge to automaticly deploy the C2D cluster, with two environments. \ No newline at end of file +If your setup is more complex, you can checkout (our automated deployment example)\[https://github.com/oceanprotocol/c2d\_barge/blob/main/c2d\_barge\_deployer/docker-entrypoint.sh]. This script is used by barge to automaticly deploy the C2D cluster, with two environments. diff --git a/infrastructure/deploying-aquarius.md b/infrastructure/deploying-aquarius.md index f29dd0de..e550fe67 100644 --- a/infrastructure/deploying-aquarius.md +++ b/infrastructure/deploying-aquarius.md @@ -1,4 +1,4 @@ -# Deploying Aquarius +# Deploy Aquarius ### About Aquarius @@ -21,7 +21,7 @@ This guide will deploy Aquarius, including Elasticsearch as a single systemd ser * A server for hosting Aquarius. See [this guide](setup-server.md) for how to create a server; * Docker Compose and Docker Engine are installed and configured on the server. See [this guide](setup-server.md#install-docker-engine-and-docker-compose) for how to install these products. -* The RPC URLs and API keys for each of the networks to which the Aquarius will be connected. See [this guide](../developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. +* The RPC URLs and API keys for each of the networks to which the Aquarius will be connected. See [this guide](https://github.com/oceanprotocol/docs/blob/node-release/developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. ### Steps @@ -235,7 +235,7 @@ Templates (yaml files) are provided and could be customized based on the environ * A server for hosting Aquarius. See [this guide](setup-server.md) for how to create a server; * Kubernetes with Docker Engine is installed and configured on the server. See [this chapter](setup-server.md#install-kubernetes-with-docker-engine) for information on installing Kubernetes. -* The RPC URLs and API keys for each of the networks to which the Aquarius will be connected. See [this guide](../developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. +* The RPC URLs and API keys for each of the networks to which the Aquarius will be connected. See [this guide](https://github.com/oceanprotocol/docs/blob/node-release/developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. ### Steps @@ -281,7 +281,7 @@ $ curl localhost:9200 Aquarius supports indexing multiple chains using a single instance to serve API requests and one instance for each chain that must be indexed. -

Aquarius deployment - multiple chains indexing

+

Aquarius deployment - multiple chains indexing

The following deployment templates could be used for guidance. Some parameters are [optional](https://github.com/oceanprotocol/aquarius) and the template could be adjusted based on these considerations. Common cases are the deployments for one/multiple Ethereum networks: diff --git a/infrastructure/deploying-ocean-subgraph.md b/infrastructure/deploying-ocean-subgraph.md index a2e4c99a..cc7286c2 100644 --- a/infrastructure/deploying-ocean-subgraph.md +++ b/infrastructure/deploying-ocean-subgraph.md @@ -1,4 +1,4 @@ -# Deploying Ocean Subgraph +# Deploy Ocean Subgraph ### About Ocean Subgraph @@ -12,7 +12,7 @@ Ocean Subgraph is deployed on top of [graph-node](https://github.com/graphprotoc * A server for hosting Graph-node. See [this guide](setup-server.md) for how to create a server; * Docker Compose and Docker Engine are installed and configured on the server. See [this guide](setup-server.md#install-docker-engine-and-docker-compose) for how to install these products. -* The RPC URLs and API keys for each of the networks to which Ocean Subgraph will be connected. See [this guide](../developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. +* The RPC URLs and API keys for each of the networks to which Ocean Subgraph will be connected. See [this guide](https://github.com/oceanprotocol/docs/blob/node-release/developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. ### Steps @@ -182,7 +182,7 @@ In this example, we will deploy graph-node as a Kubernetes deployment service. [ * A server for hosting graph-node. See [this guide](setup-server.md) for how to create a server; * Kubernetes with Docker Engine is installed and configured on the server. See [this chapter](setup-server.md#install-kubernetes-with-docker-engine) for information on installing Kubernetes. -* The RPC URLs and API keys for each of the networks to which the Provider will be connected. See [this guide](../developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. +* The RPC URLs and API keys for each of the networks to which the Provider will be connected. See [this guide](https://github.com/oceanprotocol/docs/blob/node-release/developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. ### Steps @@ -440,7 +440,7 @@ After you deployed graph-node, either using Kubernetes or Docker Compose, you ca ### Steps 1. [Install Node.js locally](deploying-ocean-subgraph.md#1.-install-node.js-locally) -2. [Download and extract Ocean-subgraph](#2.-download-and-extract-ocean-subgraph) +2. [Download and extract Ocean-subgraph](deploying-ocean-subgraph.md#2.-download-and-extract-ocean-subgraph) #### 1. Install Node.js locally diff --git a/infrastructure/deploying-provider.md b/infrastructure/deploying-provider.md index 1eedc0cc..67c9ac19 100644 --- a/infrastructure/deploying-provider.md +++ b/infrastructure/deploying-provider.md @@ -1,4 +1,4 @@ -# Deploying Provider +# Deploy Provider ### About Provider @@ -8,17 +8,15 @@ Provider is a multichain component, meaning that it can handle these tasks on mu As mentioned in the Setup a Server document, all Ocean components can be deployed in two types of configurations: simple, based on Docker Engine and Docker Compose, and complex, based on Kubernetes with Docker Engine. In this document, we will present how to deploy Provider in each of these configurations. - ## Deploying Provider using Docker Engine and Docker Compose -In this guide, we will deploy Provider for Sepolia (Eth test network). Therefore, please note that in the following configuration files, "11155111" is the chain ID for Sepolia. - +In this guide, we will deploy Provider for Sepolia (Eth test network). Therefore, please note that in the following configuration files, "11155111" is the chain ID for Sepolia. ### Prerequisites * A server for hosting Provider. See [this guide](setup-server.md) for how to create a server; * Docker Compose and Docker Engine are installed and configured on the server. See [this guide](setup-server.md#install-docker-engine-and-docker-compose) for how to install these products. -* The RPC URLs and API keys for each of the networks to which the Provider will be connected. See [this guide](../developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. +* The RPC URLs and API keys for each of the networks to which the Provider will be connected. See [this guide](https://github.com/oceanprotocol/docs/blob/node-release/developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. * The private key which will be used by Provider to encrypt/decrypt URLs. ### Steps @@ -33,7 +31,6 @@ The steps to deploy the Provider using Docker Engine and Docker Compose are: 6. [Confirm the Provider is accessible](deploying-provider.md#6.-confirm-the-provider-is-accessible) 7. [Check Provider service logs](deploying-provider.md#7.-check-provider-service-logs) - #### 1. Create the /etc/docker/compose/provider/docker-compose.yml file From a terminal console, create /etc/docker/compose/provider/docker-compose.yml file, then copy and paste the following content to it. Check the comments in the file and replace the fields with the specific values of your implementation. @@ -66,7 +63,6 @@ networks: driver: bridge ``` - #### 2. Create the _/etc/systemd/system/docker-compose@provider.service_ file Create the _/etc/systemd/system/docker-compose@provider.service_ file then copy and paste the following content to it. This example file could be customized if needed. @@ -91,7 +87,6 @@ ExecStop=/usr/bin/env docker-compose -p $PROJECT stop WantedBy=multi-user.target ``` - #### 3. Reload the systemd manager configuration Run the following command to reload the systemd manager configuration @@ -106,7 +101,6 @@ Optionally, you can enable the services to start at boot, using the following co sudo systemctl enable docker-compose@provider.service ``` - #### 4. Start the Provider service To start the Provider service, run the following command: @@ -115,7 +109,6 @@ To start the Provider service, run the following command: sudo systemctl start docker-compose@provider.service ``` - #### 5. Check the service's status Check the status of the service by running the following command. The output of the command should be similar to the one presented here. @@ -139,7 +132,6 @@ Jun 14 09:41:53 testvm env[4126]: Container provider Started Jun 14 09:41:53 testvm systemd[1]: Finished provider service with docker compose. ``` - #### 6. Confirm the Provider is accessible Once started, the Provider service is accessible on `localhost` port 8030/tcp. Run the following command to access the Provider. The output should be similar to the one displayed here. @@ -149,7 +141,6 @@ $ curl localhost:8030 {"chainIds":[5,80001],"providerAddresses":{"5":"0x00c6A0BC5cD0078d6Cd0b659E8061B404cfa5704","80001":"0x4256Df50c94D9a7e04610976cde01aED91eB531E"},"serviceEndpoints":{"computeDelete":["DELETE","/api/services/compute"],"computeEnvironments":["GET","/api/services/computeEnvironments"],"computeResult":["GET","/api/services/computeResult"],"computeStart":["POST","/api/services/compute"],"computeStatus":["GET","/api/services/compute"],"computeStop":["PUT","/api/services/compute"],"create_auth_token":["GET","/api/services/createAuthToken"],"decrypt":["POST","/api/services/decrypt"],"delete_auth_token":["DELETE","/api/services/deleteAuthToken"],"download":["GET","/api/services/download"],"encrypt":["POST","/api/services/encrypt"],"fileinfo":["POST","/api/services/fileinfo"],"initialize":["GET","/api/services/initialize"],"initializeCompute":["POST","/api/services/initializeCompute"],"nonce":["GET","/api/services/nonce"],"validateContainer":["POST","/api/services/validateContainer"]},"software":"Provider","version":"2.0.2"} ``` - #### 7. Check Provider service logs If needed, use docker CLI to check provider service logs. @@ -186,17 +177,15 @@ $ docker logs --follow provider ``` - ## Deploying Provider using Kubernetes with Docker Engine - -In this example, we will run Provider as a Kubernetes deployment resource. We will deploy Provider for Sepolia (Eth test network). Therefore, please note that in the following configuration files, "11155111" is the chain ID for Sepolia. +In this example, we will run Provider as a Kubernetes deployment resource. We will deploy Provider for Sepolia (Eth test network). Therefore, please note that in the following configuration files, "11155111" is the chain ID for Sepolia. ### Prerequisites * A server for hosting Ocean Marketplace. See [this guide](setup-server.md) for how to create a server; * Kubernetes with Docker Engine is installed and configured on the server. See [this chapter](setup-server.md#install-kubernetes-with-docker-engine) for information on installing Kubernetes. -* The RPC URLs and API keys for each of the networks to which the Provider will be connected. See [this guide](../developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. +* The RPC URLs and API keys for each of the networks to which the Provider will be connected. See [this guide](https://github.com/oceanprotocol/docs/blob/node-release/developers/obtaining-api-keys-for-blockchain-access.md) for how to obtain the URL and the API key. * The private key that will be used by Provider to encrypt/decrypt URLs. * Aquarius is up and running @@ -210,7 +199,6 @@ The steps to deploy the Provider in Kubernetes are: [3. Create a Kubernetes service.](deploying-provider.md#3.-create-a-kubernetes-service) - #### 1. Create a YAML file for Provider configuration. From a terminal window, create a YAML file (in our example the file is named provider-deploy.yaml) then copy and paste the following content. Check the comments in the file and replace the fields with the specific values of your implementation (RPC URLs, the private key etc.). @@ -290,7 +278,6 @@ spec: Tip: before deployment, you can [validate](https://github.com/instrumenta/kubeval) the yaml file. - #### 2. Deploy the configuration Deploy the configuration in Kubernetes using the following commands. @@ -305,8 +292,6 @@ NAME READY STATUS RESTARTS AGE provider-865cb8cf9d-r9xm4 1/1 Running 0 67s ``` - #### 3. Create a Kubernetes service The next step is to create a Kubernetes service (eg. ClusterIP, NodePort, Loadbalancer, ExternalName) for this deployment, depending on the environment specifications. Follow [this link](https://kubernetes.io/docs/concepts/services-networking/service/) for details on how to create a Kubernetes service. - diff --git a/infrastructure/setup-server.md b/infrastructure/setup-server.md index c5240239..f6ab5478 100644 --- a/infrastructure/setup-server.md +++ b/infrastructure/setup-server.md @@ -4,7 +4,7 @@ description: >- Protocol's components. --- -# Setup a Server +# Set Up a Server Each deployment of the Ocean components starts with setting up a server on which these will be installed, either on-premise or hosted in a cloud platform. @@ -18,8 +18,6 @@ For complex configurations: * Operating System: Linux distribution supported by Kubernetes and Docker Engine. Please refer to this link for details: [Kubernetes with Docker Engine](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker). - - ## Server Size The required CPU and memory for the server depend on the number of requests the component is expected to serve, however, the minimum configuration of the server is: @@ -36,8 +34,6 @@ For simple configurations: 1. [Install the operating system](setup-server.md#install-the-operating-system) 2. [Install Docker Engine and Docker Compose](setup-server.md#install-docker-engine-and-docker-compose) - - For complex configurations: 1. [Install the operating system](setup-server.md#install-the-operating-system) @@ -59,15 +55,13 @@ Go to [https://www.digitalocean.com/](https://www.digitalocean.com/) and create Click on **`Create`** button and choose **`Droplets`** options from dropdown. -

Select Droplet

- - +

Select Droplet

3. Select a server configuration Select Ubuntu OS, and choose a plan and a configuration. -

Configure the server

+

Configure the server

### @@ -75,21 +69,19 @@ Select Ubuntu OS, and choose a plan and a configuration. Select the region where you want the component to be hosted and a root password. -

Select the region and set the root password

- - +

Select the region and set the root password

5. Finish the configuration and create the server Specify a hostname for the server, specify the project to which you assign the server, and then click on `Create Droplet.` -

Finalize and create the server

+

Finalize and create the server

6. Access the server's console After the server is ready, select the `Access console` option from the dropdown list to open a terminal window. -

Access the server's console

+

Access the server's console

### Install Docker Engine and Docker Compose diff --git a/predictoor.md b/predictoor.md new file mode 100644 index 00000000..38ce0e6a --- /dev/null +++ b/predictoor.md @@ -0,0 +1,9 @@ +--- +description: Run AI-powered prediction bots or trading bots on crypto price feeds to earn $ +--- + +# 👀 Predictoor + +**Predictoor docs are now at** [**docs.predictoor.ai**](https://docs.predictoor.ai)**.** + +
diff --git a/user-guides/README.md b/user-guides/README.md index 0f876c5c..fe963269 100644 --- a/user-guides/README.md +++ b/user-guides/README.md @@ -1,18 +1,20 @@ --- -description: >- - Guides to use Ocean, with no coding needed. -cover: ../.gitbook/assets/cover/user_guides_banner.png +description: Guides to use Ocean, with no coding needed. +cover: ../.gitbook/assets/user_guides_banner.png coverY: 0 --- # 📚 User Guides -
+
**Contents:** -- Basic concepts -- Using wallets -- Host assets + +* Basic concepts +* Using wallets +* Using Ocean Market +* C2D in Ocean Market +* Host assets Let's dive in! @@ -26,18 +28,38 @@ For blockchain beginners ## Using wallets -{% content-ref url="wallets/README.md" %} -[wallets/README.md.md](wallets/README.md) +{% content-ref url="wallets/" %} +[wallets](wallets/) {% endcontent-ref %} {% content-ref url="wallets/metamask-setup.md" %} -[wallets/metamask-setup.md](wallets/metamask-setup.md) +[metamask-setup.md](wallets/metamask-setup.md) {% endcontent-ref %} -## Data Storage +## Using Ocean Market + +{% content-ref url="https://github.com/oceanprotocol/docs/blob/node-release/user-guides/using-ocean-market.md" %} +[https://github.com/oceanprotocol/docs/blob/node-release/user-guides/using-ocean-market.md](https://github.com/oceanprotocol/docs/blob/node-release/user-guides/using-ocean-market.md) +{% endcontent-ref %} + +{% content-ref url="https://github.com/oceanprotocol/docs/blob/node-release/user-guides/publish-data-nfts.md" %} +[https://github.com/oceanprotocol/docs/blob/node-release/user-guides/publish-data-nfts.md](https://github.com/oceanprotocol/docs/blob/node-release/user-guides/publish-data-nfts.md) +{% endcontent-ref %} + +{% content-ref url="https://github.com/oceanprotocol/docs/blob/node-release/user-guides/buy-data-nfts.md" %} +[https://github.com/oceanprotocol/docs/blob/node-release/user-guides/buy-data-nfts.md](https://github.com/oceanprotocol/docs/blob/node-release/user-guides/buy-data-nfts.md) +{% endcontent-ref %} + +## C2D in Ocean Market + +{% content-ref url="compute-to-data/" %} +[compute-to-data](compute-to-data/) +{% endcontent-ref %} + +## Host Assets {% content-ref url="asset-hosting/" %} -[asset-hosting](asset-hosting/README.md) +[asset-hosting](asset-hosting/) {% endcontent-ref %} ## Antique Stuff 🏺 diff --git a/user-guides/asset-hosting/README.md b/user-guides/asset-hosting/README.md index 0f4b0e31..72a186e2 100644 --- a/user-guides/asset-hosting/README.md +++ b/user-guides/asset-hosting/README.md @@ -27,5 +27,5 @@ When you publish your asset as an NFT, then the URL/TX ID/CID required to access We recommend implementing a security policy that allows **only the Provider's IP address to access the file** and blocks requests from other unauthorized actors is recommended. Since not all hosting services provide this feature, **you must carefully consider the security features while choosing a hosting service.** {% hint style="warning" %} -**Please use a proper hosting solution to keep your files.** Systems like `Google Drive` are not specifically designed for this use case. They include various virus checks and rate limiters that prevent the [`Provider`](../../developers/provider/README.md)downloading the asset once it was purchased. +**Please use a proper hosting solution to keep your files.** Systems like `Google Drive` are not specifically designed for this use case. They include various virus checks and rate limiters that prevent the [`Provider`](../../developers/provider/)downloading the asset once it was purchased. {% endhint %} diff --git a/user-guides/asset-hosting/arweave.md b/user-guides/asset-hosting/arweave.md index 2158c788..dc218a95 100644 --- a/user-guides/asset-hosting/arweave.md +++ b/user-guides/asset-hosting/arweave.md @@ -6,7 +6,7 @@ description: How to use decentralized hosting for your NFT assets ### Using Arweave with Uploader -Enhance the efficiency of your file uploads by leveraging the simplicity of the [Ocean Uploader](./Uploader.md) storage system for Arweave. Dive into our comprehensive guide [here](./Uploader.md) to discover detailed steps and tips, ensuring a smooth and hassle-free uploading process. Your experience matters, and we're here to make it as straightforward as possible. +Enhance the efficiency of your file uploads by leveraging the simplicity of the [Ocean Uploader](https://github.com/oceanprotocol/docs/blob/node-release/user-guides/asset-hosting/Uploader.md) storage system for Arweave. Dive into our comprehensive guide [here](https://github.com/oceanprotocol/docs/blob/node-release/user-guides/asset-hosting/Uploader.md) to discover detailed steps and tips, ensuring a smooth and hassle-free uploading process. Your experience matters, and we're here to make it as straightforward as possible. ### Arweave @@ -24,13 +24,13 @@ If at any point you need more AR tokens, you can fund your wallet from one of Ar Open [arweave.app](https://arweave.app/) in a browser. Select the '+' icon in the bottom left corner of the screen. Import the JSON key file from step 1. -![Arweave.app import key file](../../.gitbook/assets/hosting/arweave-1.png) +![Arweave.app import key file](../../.gitbook/assets/arweave-1.png) **Step 3 - Upload file** Select the newly imported wallet by clicking the "blockies" style icon in the top left corner of the screen. Select **Send.** Click the **Data** field and select the file you wish to upload. -![Arweave.app upload file](../../.gitbook/assets/hosting/arweave-2.png) +![Arweave.app upload file](../../.gitbook/assets/arweave-2.png) The fee in AR tokens will be calculated based on the size of the file and displayed near the bottom middle part of the screen. Select **Submit** to submit the transaction. @@ -40,8 +40,8 @@ After submitting the transaction, select **Transactions** and wait until the tra Once the transaction finalizes, select it, and copy the transaction ID. -![Arweave.app transaction ID](../../.gitbook/assets/hosting/arweave-3.png) +![Arweave.app transaction ID](../../.gitbook/assets/arweave-3.png) **Step 5 - Publish the asset with the transaction ID** -![Ocean Market - Publish with arweave transaction ID](../../.gitbook/assets/hosting/arweave-4.png) +![Ocean Market - Publish with arweave transaction ID](../../.gitbook/assets/arweave-4.png) diff --git a/user-guides/asset-hosting/aws.md b/user-guides/asset-hosting/aws.md index 3125a4e2..f4718833 100644 --- a/user-guides/asset-hosting/aws.md +++ b/user-guides/asset-hosting/aws.md @@ -18,45 +18,45 @@ Create an account on [AWS](https://aws.amazon.com/s3/). Users might also be aske Go to the AWS portal for S3: https://aws.amazon.com/s3/ and select from the upper right corner `Create an AWS account` as shown below. -![Click the orange create an account button](../../.gitbook/assets/hosting/aws-1.png) +![Click the orange create an account button](../../.gitbook/assets/aws-1.png) **Fill in the details** -![Create an account - 2](../../.gitbook/assets/hosting/aws-2.png) +![Create an account - 2](../../.gitbook/assets/aws-2.png) **Create a bucket** After logging into the new account, search for the available services and select `S3` type of storage. -![Select S3 storage](../../.gitbook/assets/hosting/aws-3.png) +![Select S3 storage](../../.gitbook/assets/aws-3.png) To create an S3 bucket, choose `Create bucket`. -![Create a bucket](../../.gitbook/assets/hosting/aws-4.png) +![Create a bucket](../../.gitbook/assets/aws-4.png) Fill in the form with the necessary information. Then, the bucket is up & running. -![Check that the bucket is up and running](../../.gitbook/assets/hosting/aws-5.png) +![Check that the bucket is up and running](../../.gitbook/assets/aws-5.png) **Step 2 - Upload asset on S3 bucket** Now, the asset can be uploaded by selecting the bucket name and choosing `Upload` in the `Objects` tab. -![Upload asset on S3 bucket](../../.gitbook/assets/hosting/aws-6.png) +![Upload asset on S3 bucket](../../.gitbook/assets/aws-6.png) **Add files to the bucket** Get the files and add them to the bucket. -The file is an example used in multiple Ocean repositories, and it can be found [here](https://raw.githubusercontent.com/oceanprotocol/c2d-examples/main/branin_and_gpr/branin.arff). +The file is an example used in multiple Ocean repositories, and it can be found [here](https://raw.githubusercontent.com/oceanprotocol/c2d-examples/main/branin\_and\_gpr/branin.arff). -![Upload asset on S3 bucket](../../.gitbook/assets/hosting/aws-7.png) +![Upload asset on S3 bucket](../../.gitbook/assets/aws-7.png) The permissions and properties can be set afterward, for the moment keep them as default. After selecting `Upload`, make sure that the status is `Succeeded`. -![Upload asset on S3 bucket](../../.gitbook/assets/hosting/aws-8.png) +![Upload asset on S3 bucket](../../.gitbook/assets/aws-8.png) **Step 3 - Access the Object URL on S3 Bucket** @@ -68,7 +68,7 @@ Go to the `Permissions` tab and select `Edit` and then uncheck `Block all public If editing the permissions is unavailable, modify the `Object Ownership` by enabling the ACLs as shown below. -![Access the Object URL on S3 Bucket](../../.gitbook/assets/hosting/aws-9.png) +![Access the Object URL on S3 Bucket](../../.gitbook/assets/aws-9.png) **Modifying bucket policy** @@ -93,13 +93,13 @@ Note that the `` must be chosen from the personal buckets dashboard After saving the changes, the bucket should appear as `Public` access. -![Access the Object URL on S3 Bucket](../../.gitbook/assets/hosting/aws-10.png) +![Access the Object URL on S3 Bucket](../../.gitbook/assets/aws-10.png) **Verify the object URL on public access** Select the file from the bucket that needs verification and select `Open`. Now download the file on your system. -![Access the Object URL on S3 Bucket](../../.gitbook/assets/hosting/aws-11.png) +![Access the Object URL on S3 Bucket](../../.gitbook/assets/aws-11.png) **Step 4 - Get the S3 Bucket Link & Publish Asset on Market** @@ -109,6 +109,6 @@ Go to [Ocean Market](https://market.oceanprotocol.com/publish/1) to complete the Copy the `Object URL` that can be found at `Object Overview` from the AWS S3 bucket and paste it into the `File` field from the form found at [step 2](https://market.oceanprotocol.com/publish/2) as it is illustrated below. -![Get the S3 Bucket Link & Publish Asset on Market](../../.gitbook/assets/hosting/aws-12.png) +![Get the S3 Bucket Link & Publish Asset on Market](../../.gitbook/assets/aws-12.png) #### diff --git a/user-guides/asset-hosting/azure-cloud.md b/user-guides/asset-hosting/azure-cloud.md index 6f19bc15..f2dd795d 100644 --- a/user-guides/asset-hosting/azure-cloud.md +++ b/user-guides/asset-hosting/azure-cloud.md @@ -18,44 +18,44 @@ Create an account on [Azure](https://azure.microsoft.com/en-us/). Users might al Go to the Azure portal: https://portal.azure.com/#home and select `Storage accounts` as shown below. -![Select storage accounts](../../.gitbook/assets/hosting/azure1.png) +![Select storage accounts](../../.gitbook/assets/azure1.png) **Create a new storage account** -![Create a storage account](../../.gitbook/assets/hosting/azure2.png) +![Create a storage account](../../.gitbook/assets/azure2.png) **Fill in the details** -![Add details](../../.gitbook/assets/hosting/azure3.png) +![Add details](../../.gitbook/assets/azure3.png) **Storage account created** -![Storage account created](../../.gitbook/assets/hosting/azure4.png) +![Storage account created](../../.gitbook/assets/azure4.png) **Step 2 - Create a blob container** -![Create a blob container](../../.gitbook/assets/hosting/azure5.png) +![Create a blob container](../../.gitbook/assets/azure5.png) **Step 3 - Upload a file** -![Upload a file](../../.gitbook/assets/hosting/azure6.png) +![Upload a file](../../.gitbook/assets/azure6.png) **Step 4 - Share the file** **Select the file to be published and click Generate SAS** -![Click generate SAS](../../.gitbook/assets/hosting/azure7.png) +![Click generate SAS](../../.gitbook/assets/azure7.png) **Configure the SAS details and click `Generate SAS token and URL`** -![Generate link to file](../../.gitbook/assets/hosting/azure8.png) +![Generate link to file](../../.gitbook/assets/azure8.png) **Copy the generated link** -![Copy the link](../../.gitbook/assets/hosting/azure9.png) +![Copy the link](../../.gitbook/assets/azure9.png) **Step 5 - Publish the asset using the generated link** Now, copy and paste the link into the Publish page in the Ocean Marketplace. -![Publish the file as an asset](../../.gitbook/assets/hosting/azure10.png) +![Publish the file as an asset](../../.gitbook/assets/azure10.png) diff --git a/user-guides/asset-hosting/github.md b/user-guides/asset-hosting/github.md index 704fb507..7744c448 100644 --- a/user-guides/asset-hosting/github.md +++ b/user-guides/asset-hosting/github.md @@ -14,11 +14,11 @@ Create an account on [Github](https://github.com/). Users might also be asked to **Step 1 - Create a new repository on GitHub or navigate to an existing repository where you want to host your files.** -

Create new repository

+

Create new repository

Fill in the repository details. **Make sure your Repo is public.** -

Make the repository public

+

Make the repository public

### Host Your File @@ -26,21 +26,21 @@ Fill in the repository details. **Make sure your Repo is public.** Go to your repo in Github and above the list of files, select the Add file dropdown menu and click Upload files. Alternatively, you can use version control to push your file to the repo. -

Upload file on Github

+

Upload file on Github

To select the files you want to upload, drag and drop the file or folder, or click 'choose your files'. -

Drag and drop new files on your GitHub repo

+

Drag and drop new files on your GitHub repo

In the "Commit message" field, type a short, meaningful commit message that describes the change you made. -

Commit changes

+

Commit changes

Below the commit message field, decide whether to add your commit to the current branch or to a new branch. If your current branch is the default branch, then you should choose to create a new branch for your commit and then create a pull request. After you make your commit (and merge your pull request, if applicable), then click on the file. -

Upload successful

+

Upload successful

**Step 3 - Get the RAW version of your file** @@ -48,19 +48,18 @@ To use your file on the Market **you need to use the raw url of the asset**. Als Open the File and click on the "Raw" button on the right side of the page. -

Click the Raw button

+

Click the Raw button

Copy the link in your browser's URL - it should begin with "https://raw.githubusercontent.com/...." like in the image below. -

Grab the RAW github URL from your browser's URL bar

+

Grab the RAW github URL from your browser's URL bar

-

Copy paste the raw url

+

Copy paste the raw url

**Step 4 - Publish the asset using the Raw link** Now, copy and paste the Raw Github URL into the File field of the Access page in the Ocean Market. -

Upload on the Ocean Market

+

Upload on the Ocean Market

Et voilà! You have now successfully hosted your asset on Github and properly linked it on the Ocean Market. - diff --git a/user-guides/asset-hosting/google-storage.md b/user-guides/asset-hosting/google-storage.md index 51ba9d58..9bafd41b 100644 --- a/user-guides/asset-hosting/google-storage.md +++ b/user-guides/asset-hosting/google-storage.md @@ -18,43 +18,42 @@ Create an account on [Google Cloud](https://console.cloud.google.com/). Users mi In the Google Cloud console, go to the Cloud Storage Buckets page -
+
**Create a new bucket** -
+
**Fill in the details** -
+
**Allow access to your recently created Bucket** -
+
**Step 2 - Upload a file** -
+
**Step 3 - Change your file's access (optional)** **If your bucket's access policy is restricted, on the menu on the right click on Edit access (skip this step if your bucket is publicly accessible)** -
+
-
+
**Step 4 - Share the file** **Open the file and copy the generated link** -
+
-
+
**Step 5 - Publish the asset using the generated link** Now, copy and paste the link into the Publish page in the Ocean Marketplace. -
- +
diff --git a/user-guides/asset-hosting/uploader.md b/user-guides/asset-hosting/uploader.md index 2a8178fe..cc4fa971 100644 --- a/user-guides/asset-hosting/uploader.md +++ b/user-guides/asset-hosting/uploader.md @@ -2,21 +2,20 @@ description: How to use Ocean Uploader --- -# Ocean Uploader +# Uploader -### What is Ocean Uploader? +### What is Ocean Uploader? Uploader is designed to simplify the process of storing your assets on decentralized networks (such as [arweave](https://www.arweave.org/) and [filecoin](https://filecoin.io/)). It provides access to multiple secure, reliable, and cost-effective storage solutions in an easy-to-use UI and JavaScript library. ### What decentralized storage options are available? -Currently, we support Arweave and IPFS. We may support other storage options in the future. +Currently, we support Arweave and IPFS. We may support other storage options in the future. -### How to store an asset on Arweave with [Ocean Uploader](https://uploader.oceanprotocol.com/)? +### How to store an asset on Arweave with [Ocean Uploader](https://uploader.oceanprotocol.com/)? Ready to dive into the world of decentralized storage with [Ocean Uploader](https://uploader.oceanprotocol.com/)? Let's get started: {% embed url="https://app.arcade.software/share/88CYjl3SPhTS20qKqBGU" fullWidth="false" %} -{% endembed %} Woohoo 🎉 You did it! You now have an IPFS CID for your asset. Pop over to https://ipfs.oceanprotocol.com/ipfs/{CID} to admire your handiwork, you'll be able to access your file at that link. You can use it to publish your asset on [Ocean Market](../../developers/uploader/uploader-ui-marketplace.md). diff --git a/user-guides/basic-concepts.md b/user-guides/basic-concepts.md index b92db67f..c4b797ab 100644 --- a/user-guides/basic-concepts.md +++ b/user-guides/basic-concepts.md @@ -2,11 +2,11 @@ description: Learn the blockchain concepts behind Ocean --- -# Basic Concepts +# Basic concepts You'll need to know a thing or two about blockchains to understand Ocean Protocol's tech... Let's get started with the basics 🧑‍🏫 -

Prepare yourself, my friend

+

Prepare yourself, my friend

### Blockchain: The backbone of Ocean diff --git a/user-guides/compute-to-data/README.md b/user-guides/compute-to-data/README.md new file mode 100644 index 00000000..596f9dc8 --- /dev/null +++ b/user-guides/compute-to-data/README.md @@ -0,0 +1,23 @@ +--- +description: >- + How to sell compute jobs on your datasets while keeping your data and + algorithms private +--- + +# Compute-to-Data in Ocean Market + +### Introducing, The Problem + +{% embed url="https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExNjNmMTc3MjFjNTg2MjQwZTQyY2VkNzFiNjk1YzM5ZmJkM2NjMzA4ZiZlcD12MV9pbnRlcm5hbF9naWZzX2dpZklkJmN0PWc/17FxSFyYNOgThnonDK/giphy.gif" fullWidth="false" %} + +**Anyone could buy your data on the Ocean Market and then publicly share it all over the internet.** Pretty scary, right? But what if there was a way that buyers could access valuable insights from your data and algorithms without actually \*seeing\* the data or algorithms themselves? We have a solution for that! + +Enter, **Compute-to-Data** (also lovingly called C2D 🥰). Ocean Protocol's C2D feature enables you to monetize the OUTPUT of compute jobs on your datasets without revealing the contents of the data/algorithms themselves. Let's dive in how! + +## How to Compute-to-Data 💃 + +You will need to accomplish **3 main steps** in establishing a compute-to-data flow: [create an algorithm](make-a-boss-c2d-algorithm.md) that's compatible with C2D, [publish your C2D-specific algorithm NFT](publish-a-c2d-algorithm-nft.md), then [publish your data NFT with C2D configurations](publish-a-c2d-data-nft.md) allowing the algorithm to compute on it. That's it! Then you'll be able to sell compute jobs 🤩 Read the steps in this section's three subpages to create & sell a compute job from start to finish. 💪😃 + +Or you could watch this video tutorial about it below: + +{% embed url="https://youtu.be/2AF9mkqlf5Y" %} diff --git a/user-guides/compute-to-data/make-a-boss-c2d-algorithm.md b/user-guides/compute-to-data/make-a-boss-c2d-algorithm.md new file mode 100644 index 00000000..0e0a5a76 --- /dev/null +++ b/user-guides/compute-to-data/make-a-boss-c2d-algorithm.md @@ -0,0 +1,98 @@ +--- +description: >- + How to construct the beginnings of an awesome algorithm for C2D compute jobs + on datasets +--- + +# Make a Boss C2D Algorithm + +
+ +The beginning of any algorithm for Compute-to-Data starts by loading the dataset correctly. Read on, anon 👨🏻‍💻 + +### Open the local dataset file + +This code goes at the top of your algorithm file for your algorithm NFT asset to use with Compute-to-Data. It references your data NFT asset file on the Docker container you selected. + +{% tabs %} +{% tab title="Python" %} +```python +import csv +import json +import os + +def get_input(local=False): + + dids = os.getenv("DIDS", None) + + if not dids: + print("No DIDs found in the environment. Aborting.") + return + + dids = json.loads(dids) + + for did in dids: + filename = f"data/inputs/{did}/0" # 0 for metadata service + print(f"Reading asset file {filename}.") + return filename + +# Get the input filename using the get_input function +input_filename = get_input() + +if not input_filename: + # No input filename returned + exit() + +# Open the file & run your code +with open(input_filename, 'r') as file: + # Read the CSV file + csv_reader = csv.DictReader(file) + + +``` +{% endtab %} + +{% tab title="Javascript" %} +```javascript +const fs = require("fs"); + +var input_folder = "/data/inputs"; +var output_folder = "/data/outputs"; + +async function processfolder(Path) { + var files = fs.readdirSync(Path); + for (var i =0; i < files.length; i++) { + var file = files[i]; + var fullpath = Path + "/" + file; + if (fs.statSync(fullpath).isDirectory()) { + await processfolder(fullpath); + } else { + + } + } +} + + + +// Open the file & run your code +processfolder(input_folder); + +``` +{% endtab %} +{% endtabs %} + +**Note:** Here are the following Python libraries that you can use in your code: + +```python +// Python modules +numpy==1.16.3 +pandas==0.24.2 +python-dateutil==2.8.0 +pytz==2019.1 +six==1.12.0 +sklearn +xlrd == 1.2.0 +openpyxl >= 3.0.3 +wheel +matplotlib +``` diff --git a/user-guides/compute-to-data/publish-a-c2d-algorithm-nft.md b/user-guides/compute-to-data/publish-a-c2d-algorithm-nft.md new file mode 100644 index 00000000..c835c624 --- /dev/null +++ b/user-guides/compute-to-data/publish-a-c2d-algorithm-nft.md @@ -0,0 +1,63 @@ +--- +description: How to publish a C2D algorithm NFT on the Ocean Market +--- + +# Publish a C2D Algorithm NFT + +

You're an algorithm guru after all!

+ +### Publish Your Algorithm NFT + +#### Step 1 - Navigate to the Ocean Market + +* Go to [https://market.oceanprotocol.com](https://market.oceanprotocol.com) + +#### Step 2 - Connect your wallet + +* Click the top right Connect Wallet button to connect your self-custody wallet to the Ocean Market + +

Connect your self-custody wallet

+ +#### Step 3 - Click the Publish link in the top left corner of the page + +* Click the Publish link + +

Navigate to the Publish page

+ +#### Step 4 - Enter the metadata + +* Enter the metadata for your algorithm NFT paying special attention to select the Algorithm asset type button: + +

Be sure to select the Algorithm asset type

+ +* Select the appropriate Docker image to run your code - most algorithms are written in Javascript or Python, so you can use either of these Docker images or your own custom image! + +

Select the appropriate Docker image for your algorithm type

+ +#### Step 5 - Enter the Access information + +* Make sure to keep this option checked! ✅ + +

Keep this option checked for Compute-to-Data

+ +#### Step 6 - Set a price, Fixed or Free, for your algorithm + +* It is recommended that you set a fixed price since the price that you choose for your algorithm will be charged any time that someone selects to run your algorithm on a dataset, including datasets that aren't yours! + +

Set a price for your C2D algorithm NFT

+ +#### Step 7 - Approve the preview + +* Your preview should look like the following: + +
+ +#### Step 8 - Submit the transactions + +* Click the pink Submit button at the bottom of the page and sign the two transactions with your wallet. You'll have to pay for gas when you sign to publish your algorithm asset. + +

Sign and pay gas for 2 transactions on the final publishing step

+ +#### Congratulations on publishing your algorithm! + +* On to the next step -> [Publish a C2D Data NFT](publish-a-c2d-data-nft.md) diff --git a/user-guides/compute-to-data/publish-a-c2d-data-nft.md b/user-guides/compute-to-data/publish-a-c2d-data-nft.md new file mode 100644 index 00000000..bd15b52a --- /dev/null +++ b/user-guides/compute-to-data/publish-a-c2d-data-nft.md @@ -0,0 +1,91 @@ +--- +description: How to publish a data NFT with C2D configurations +--- + +# Publish a C2D Data NFT + +
+ +#### Step 1 - Navigate to the Ocean Market + +* Go to [https://market.oceanprotocol.com](https://market.oceanprotocol.com) + +#### Step 2 - Connect your wallet + +* Click the top right Connect Wallet button to connect your self-custody wallet to the Ocean Market + +

Connect your self-custody wallet

+ +#### Step 3 - Click the Publish link in the top left corner of the page + +* Click the Publish link + +

Navigate to the Publish page

+ +#### Step 4 - Enter the metadata + +* Enter the metadata for your data NFT keeping the Dataset asset type selected by default: + +

Keep the default Dataset Asset Type selected

+ +#### Step 5 - Enter the Access information + +* You must select the Compute access type in this step! + +

Make sure that you select Compute access type

+ +#### Step 6 - Set a price, Fixed or Free, for your dataset + +* Toggle the tab to decide whether you want to set a fixed or free price for your dataset. + +

Set a price for your C2D data NFT

+ +#### Step 7 - Approve the preview + +* Your preview should look like the following (this will change soon!): + +
+ +#### Step 8 - Submit the transactions + +* Click the pink Submit button at the bottom of the page and sign the two transactions with your wallet. You'll have to pay for gas when you sign to publish your algorithm asset. + +

Sign and pay gas for 2 transactions on the final publishing step

+ +**Ok, you've published a Data NFT that is \*almost\* ready for Compute-to-Data. Just a few tiny steps left and you're done!** + +#### Step 9 - Edit the asset (yes, again!) + +* On the webpage for your Data NFT, you need to click the Edit Asset link to change the C2D settings. + +

Click the Edit Asset link

+ +#### Step 10 - Edit the Compute settings + +* You must select the Edit Compute Settings button to add your algorithm to the data NFT for computation. + +

Select the Edit Compute Settings tab button

+ +* Then, search for your algorithm in the Selected algorithms search bar and check the box next to it to add it as an algorithm able to compute on the dataset. + +

Search for and select your algorithm to compute on your dataset

+ +#### Step 11 - Submit the transactions + +* Click the pink Submit button at the bottom of the page and sign all the transactions. + +

Click the Submit button to finalize the transaction

+ +#### Congratulations! You have fully finished the C2D flow. Check your work by verifying that your algorithm appears on the data NFT's page, like in the following example: + +

Your algorithm should appear now on the data NFT's page!

+ +If you would like to run the compute job, then simply click the radio button to the left of the algorithm's name and click Buy Compute Job. + +

Buy the compute job to check your work!

+ +The output of your algorithm's computation on the dataset will appear in the Algorithm.log output. Voilá! + +#### Now do a little dance, because you're done! + +{% embed url="https://media4.giphy.com/media/CxhWJeIicfOEynsEn6/giphy.gif?cid=ecf05e478eb1zzixmsjwbwx37a0d4e1096812j513crzr18j&ct=g&ep=v1_gifs_search&rid=giphy.gif" %} diff --git a/user-guides/remove-liquidity-pools.md b/user-guides/remove-liquidity-pools.md index 83c35402..02f3755e 100644 --- a/user-guides/remove-liquidity-pools.md +++ b/user-guides/remove-liquidity-pools.md @@ -10,23 +10,23 @@ Liquidity pools and dynamic pricing used to be supported in previous versions of 2. Click _View All_ and look for Ocean Pool Token (OPT) transfers. Those transactions always come from the pool contract, which you can click on. 3. On the pool contract page, go to _Contract_ -> _Read Contract_. -

Read Contract

+

Read Contract

4\. Go to field `20. balanceOf` and insert your ETH address. This will retrieve your pool share token balance in wei. -

Balance Of

+

Balance Of

5\. Copy this number as later you will use it as the `poolAmountIn` parameter. 6\. Go to field `55. totalSupply` to get the total amount of pool shares, in wei. -

Total Supply

+

Total Supply

7\. Divide the number by 2 to get the maximum of pool shares you can send in one pool exit transaction. If your number retrieved in former step is bigger, you have to send multiple transactions. 8\. Go to _Contract_ -> _Write Contract_ and connect your wallet. Be sure to have your wallet connected to network of the pool. -

Write Contract

+

Write Contract

9\. Go to the field `5. exitswapPoolAmountIn` @@ -35,8 +35,8 @@ Liquidity pools and dynamic pricing used to be supported in previous versions of * Hit _Write_ * -

Remove Liquidity

+

Remove Liquidity

10\. Confirm transaction in Metamask -

Confirm transaction

+

Confirm transaction

diff --git a/user-guides/wallets/README.md b/user-guides/wallets/README.md index a9a36c64..51321b1e 100644 --- a/user-guides/wallets/README.md +++ b/user-guides/wallets/README.md @@ -2,11 +2,11 @@ description: Fundamental knowledge of using ERC-20 crypto wallets. --- -# Wallets +# Using Wallets Ocean Protocol users require an ERC-20 compatible wallet to manage their OCEAN and ETH tokens. In this guide, we will provide some recommendations for different wallet options. -
+
### What is a wallet? diff --git a/user-guides/wallets/metamask-setup.md b/user-guides/wallets/metamask-setup.md index f3121b34..ad5a8993 100644 --- a/user-guides/wallets/metamask-setup.md +++ b/user-guides/wallets/metamask-setup.md @@ -2,7 +2,7 @@ description: How to set up a MetaMask wallet on Chrome --- -# Set Up MetaMask Wallet +# Set Up MetaMask Before you can publish or purchase assets, you will need a crypto wallet. As Metamask is one of the most popular crypto wallets around, we made a tutorial to show you how to get started with Metamask to use Ocean's tech. @@ -12,27 +12,27 @@ Before you can publish or purchase assets, you will need a crypto wallet. As Met 1. Go to the [Chrome Web Store for extensions](https://chrome.google.com/webstore/category/extensions) and search for MetaMask. -![metamask-chrome-store](../../.gitbook/assets/wallet/metamask-chrome-extension.png) +![metamask-chrome-store](../../.gitbook/assets/metamask-chrome-extension.png) * Install MetaMask. The wallet provides a friendly user interface that will help you through each step. MetaMask gives you two options: importing an existing wallet or creating a new one. Choose to `Create a Wallet`: -![Create a wallet](../../.gitbook/assets/wallet/create-new-metamask-wallet.png) +![Create a wallet](../../.gitbook/assets/create-new-metamask-wallet.png) * In the next step create a new password for your wallet. Read through and accept the terms and conditions. After that, MetaMask will generate Secret Backup Phrase for you. Write it down and store it in a safe place. -![Secret Backup Phrase](../../.gitbook/assets/wallet/secret-backup-phrase.png) +![Secret Backup Phrase](../../.gitbook/assets/secret-backup-phrase.png) * Continue forward. On the next page, MetaMask will ask you to confirm the backup phrase. Select the words in the correct sequence: -![Confirm secret backup phrase](../../.gitbook/assets/wallet/confirm-backup-phrase.png) +![Confirm secret backup phrase](../../.gitbook/assets/confirm-backup-phrase.png) * Voila! Your account is now created. You can access MetaMask via the browser extension in the top right corner of your browser. -![MetaMask browser extension](../../.gitbook/assets/wallet/metamask-browser-extension.png) +![MetaMask browser extension](../../.gitbook/assets/metamask-browser-extension.png) * You can now manage ETH and OCEAN with your wallet. You can copy your account address to the clipboard from the options. When you want someone to send ETH or OCEAN to you, you will have to give them that address. It's not a secret. -![Manage tokens](../../.gitbook/assets/wallet/manage-tokens.png) +![Manage tokens](../../.gitbook/assets/manage-tokens.png) You can also watch this [video tutorial](https://www.youtube.com/playlist?list=PL\_dn0wVs9kWolBCbtHaFxsi408cumOeth) if you want more help setting up MetaMask. @@ -42,7 +42,7 @@ Sometimes it is required to use custom or external networks in MetaMask. We can Open the Settings menu and find the `Networks` option. When you open it, you'll be able to see all available networks your MetaMask wallet currently use. Click the `Add Network` button. -![Add custom/external network](../../.gitbook/assets/wallet/metamask-add-network.png) +![Add custom/external network](../../.gitbook/assets/metamask-add-network.png) There are a few empty inputs we need to fill in: diff --git a/user-guides/wallets/wallets-and-ocean.md b/user-guides/wallets/wallets-and-ocean.md index 1d035e75..1f4dffd1 100644 --- a/user-guides/wallets/wallets-and-ocean.md +++ b/user-guides/wallets/wallets-and-ocean.md @@ -1,7 +1,7 @@ --- description: >- - How to use a crypto wallet to check your OCEAN balance and send OCEAN - Tokens to others + How to use a crypto wallet to check your OCEAN balance and send OCEAN Tokens + to others --- # Manage Your OCEAN @@ -9,9 +9,9 @@ description: >- If you don't see any OCEAN in your crypto wallet software 🔎 (e.g. MetaMask or MyEtherWallet), don't worry! It might not know how to manage OCEAN yet. For an ERC-20 wallet to see OCEAN, the wallet typically needs to have OCEAN's address added as a custom token. -- The [Networks docs](../discover/networks/README.md) give the address of OCEAN on each network, and how to get OCEAN on each of those networks. -- Then, use that information for the wallet instructions below. +* The [Networks docs](https://github.com/oceanprotocol/docs/blob/node-release/user-guides/discover/networks/README.md) give the address of OCEAN on each network, and how to get OCEAN on each of those networks. +* Then, use that information for the wallet instructions below. ### MetaMask @@ -26,7 +26,6 @@ For an ERC-20 wallet to see OCEAN, the wallet typically needs to have OCEAN's ad If you prefer visual demonstrations, we have prepared a visual demo that illustrates the steps mentioned above. {% embed url="https://app.arcade.software/share/yHiKKN336QGdAkhTlsIh" fullWidth="false" %} -{% endembed %} MetaMask should now show your OCEAN balance, and when you're looking at that, there should be a `Send` button to send OCEAN to others. For help with that, see [the MetaMask docs about how to send tokens](https://metamask.zendesk.com/hc/en-us/articles/360015488931-How-to-Send-Tokens).