GithubHelp home page GithubHelp logo

arcucy / arclight Goto Github PK

View Code? Open in Web Editor NEW
34.0 34.0 7.0 61.65 MB

An artwork distribution platform where artists are given ownership and fair compensation

Home Page: https://arweave.net/LTNJ2HFOM2n1n6xlppD-pzw5_ab9AAO7bphPtWLju-0

License: MIT License

JavaScript 26.19% HTML 0.14% Vue 71.95% CSS 0.54% Less 1.13% SCSS 0.05%
arclight arweave arweave-music arweave-storage ayakalab

arclight's People

Contributors

garfield550 avatar kagurazakaizumi avatar lemonnekogh avatar littlesound avatar nekomeowww avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

arclight's Issues

Purchase and Free item issue

购买时的登录检查改为点击 BUY 立即触发
免费专辑的购买卡片应该展示 Free 字样,并且显示下载按钮

Post Info Structure Issue and Data corruption

  1. This line caused the information issue about data corruption
  2. Because the wrong APP-NAME is not synced with the arclight-test while we are testing the network, data is a mess.

One way to solve this is to manually reset the data.

[BTY 800] 探索并实现将 ETH/其他兼容的区块链与 Arweave 本身对接起来

RT

说明

对接 ETH/ETH 兼容的区块链 到 Arweave,使得用户可以通过 PST 或是 ETH 直接进行兑换以及在 ArcLight 上消费
该内容需要实现:

  1. 自动化无人值守的兑换过程(不应该出现需要额外进行铸币的操作)
  2. AR、PST、ETH、其他平台币的互相直线兑换和消费
  3. 数据库以及中心化、半中心化系统中都应该留存其交易记录、消费记录、兑换记录
  4. 基本安全保证的数据传输和可信的代码水平

该内容可以参考

  1. Uniswap(已经有众多的版本和衍生产品):https://app.uniswap.org/
  2. BridgeTokens( @nekomeowww 创作的跨链后端):https://github.com/nekomeowww/BridgeTokens-BE
  3. HecoChain(火币对于资产跨链的描述):https://docs.hecochain.com/#/bridge
  4. Verto(基于 Arweave 的 PST 交易所):https://verto.exchange/ | https://github.com/useverto/verto
  5. PST 的介绍:https://www.chainnews.com/articles/507510474479.htm

Arweave 的 PST:https://github.com/ArweaveTeam/SmartWeave/blob/master/CREATE-PST.md#distributing-fees-to-pst-holders

我们应当发行两种代币:PST,以及 ARC20,PST 作为社区成员凭证存在,ARC20 即是基于 Arweave 的只能合约 SmartWeave 存在的符合 ERC20 的代币,然而这种代币不应该与 ERC20 一样是无限的,也应该参考 BTC 一样有产出限制。

[BTY 25] 使 ArcLight 的价格可以显示为当前真实价值

RT

说明

根据社区用户 Kuba 的建议,我们应当提供价格的可选显示方式。
Kuba 提供了具体的 AR 换算 API:https://github.com/limestone-finance/limestone-api
这个价格可选方式也可以考虑为:用户可以在个人主页设置中选择「在商店中显示价格使用的货币」这样的选项,因为已经提供了 AR 转换 USD 的方式,我们也可以把获得的 USD 转换为其他货币的具体价值,相关的 API 可以参考:
https://github.com/arthurmbandeira/nodejs-currency-converter

货币选择

在个人页面的设置中提供一个下拉菜单来选择其偏好的货币,这个值可以储存在 LocalStorage 中。
如果没有设置,则可以以 USD 为默认货币显示,如果有设置,即读取其价格并且进行换算。
货币列表可以参考:https://www.countries-ofthe-world.com/world-currencies.html

货币显示

在单曲、专辑、播客、音效页面中,如果有价格,则显示并转换价格为指定货币的价格。

奖励条件

  1. 以其当前使用的 语言 或是 地区 来判断(如果可以完成这个附加条件,BTY +10)

[BTY 20] 支持 Gavatar 或是其他广泛使用的 Avatar API

RT

说明

为了提高网站访问速度,可以接入其他 Avatar(头像)API,诸如 Gavatar 这样的网站,省去了从区块链加载头像数据过于缓慢的问题。

奖励项目

本组织也有提供 ArweaveAvatar 的 Dapp,你可以前去源码查看并提交新的优化,比如:图像裁剪、图像压缩等。

[BTY 100] 评论区

RT

说明

作品下面的互动区域,可以使其他用户评论和参与讨论
可以找 @LittleSound 询问相关的数据库设计状态

[BTY 5] 在关于界面添加 ArcLight 图标,Arcucy 图标,以及其他的相关链接

RT

说明

在关于页面需要添加以下内容:

  1. ArcLight 图标和「ArcLight」字样
  2. Arcucy 图标和「Arcucy 字样」
  3. 相关链接(可以的话有图标更好)

ArcLight 图标和字样

应该居中,图片尺寸应该为 50px * 50px,字体尺寸应该是 40px,图标与字样在同一行。字体颜色:白色。
字样距离图标有 20px。
距离下方的元素应该有 5px。

Arcucy 图标和字样

应该居中,图片尺寸应该为 40px * 40px,字体尺寸应该是 20px,图标与字样在同一行。字体颜色:白色。
字样距离图标有 5px。
距离下方的元素应该有 20px。

图标和字样的最终样式

相关链接

链接到相关网站,基本颜色为白色或是 #FA589A。链接不应有 强调 线(字符下方的横线),点击后不应该有 visited 颜色。
链接效果:鼠标悬浮时应该变色,如果基本颜色是 白色 的话,颜色应该变为 #FA589A,如果基本颜色是 #FA589A,那颜色应该变化为其互补色(偏蓝绿色)。

需要添加的链接:

  1. GitHub 源码:https://github.com/Arcucy/ArcLight
  2. 官方博客:https://update.arcucy.io
  3. Telegram 群组:https://t.me/ArclightMusic
  4. Discord 群组:https://discord.gg/3zUXrnXyFv
  5. 联系邮件:[email protected]

资源

ArcLight 图标:

Arcucy 图标:

[BTY 100] 歌曲信息数据的本地缓存

RT

说明

为了加速平台网站的访问速度,我们可以在这些静态的区块链资源中把已经加载好的数据缓存到 LocalStorage 中以加快网站的数据检索速度、减少向区块链索引数据的次数,也可以减少相应的流量浪费。
但是该需求也应该考虑到如何优化数据存储以及其数据的时效性问题。

你甚至可以把个人信息缓存下来,但是由于个人信息是可以被更新的,所以有时效性问题,这个可以作为奖励项存在。

本地缓存

歌曲文件是这样构成的:
我们在主页索引所有 ArcLight App 存储过的数据值,把所有的 ID 获取出来。
获得的 ID 包含了音乐的基本信息:项目类型,项目名称,项目价格,项目 ID,项目作者,封面存储的 ID 地址,歌曲存储的 ID 地址
获得了这些信息后,你可以试着把项目类型,项目名称,项目价格,项目 ID,项目作者存起来。
进一步获取封面存储的 ID 地址,把封面的 base64 数据缓存放在 LocalStorage 中。

因为考虑到音乐文件十分巨大,你可以试着缓存 100M ~ 200M 的数据,超出这个阈值就把之前的删除。

[BTY 50] 创作者页面

RT

说明

有用户提到他们无法快速和便捷的上传自己的作品,我们需要一个类似于创作者页面以及引导的功能来引导用户。

需求

  1. 上传按钮在未登录的时候也可以看到,但是依然需要登录后才能上传
  2. 上传页面需要有帮助信息来快速检阅,这些信息可以在这个 issue 中和我商讨来编写
  3. 上传页面内部需要给不同输入框都提供帮助信息

非紧急

  1. 创作者页面需要出现在头像按钮下方
  2. 创作者页面要能够看到统计信息和上传按钮、管理界面
  3. 管理界面要能够管理作品信息、评论信息(评论详见 #268

编辑个人资料的页面无法使用

  • 编辑个人资料的页面无法使用,点击之后会直接跳转到一个空白页并且在 console 中出现错误信息。因此暂时无法测试编辑个人资料时可能存在的 BUG。
  • 在其它用户的个人主页看到编辑按钮,复现方法为先浏览自己的个人主页然后去浏览其它用户的个人主页。

[BTY 30] 在上传表单中提供版权证书,以及参与创作的其他作家的选项

RT

说明

在单曲,专辑,播客,音效的上传页面中,需要增加一个下拉式菜单,勾选选项 + 两个输入框,以及一个由下拉式菜单 + 输入框组成的组件。
该组件分别是:版权证书选项(下拉式菜单),是否是衍生作品的勾选选项 + 原始作品名称的输入框 + 原始作品链接的输入框,以及一个创作者类别(下拉式菜单) + 一个创作者名称(输入框)

版权证书

在版权证书选项中,应该符合 Creative Common 3.0 或是直接兼容 Creative Common 4.0 的不同证书选项,诸如:

  1. 不受限制地在全球范围内发布内容 CC0
  2. 署名(BY) BY
  3. 署名(BY)-相同方式共享(SA) BY-SA
  4. 署名(BY)-非商业性使用(NC) BY-NC
  5. 署名(BY)-非商业性使用(NC)-相同方式共享(SA) BY-NC-SA
  6. 署名(BY)-禁止演绎(ND)BY-ND
  7. 署名(BY)-非商业性使用(NC)-禁止演绎(ND) BY-NC-ND
    该部分列表和创建可以参考:Wikipedia

链接板式:https://creativecommons.org/licenses/${缩写}/4.0/
链接板式示例:https://creativecommons.org/licenses/by-nc-sa/4.0/
这些内容应该能够直接在 上传预览页面 ,以及 歌曲页面 直接展示出来:在歌曲创作者的正下方添加一行,在该行内保留 CC 的图标,并且匹配本地化选项的翻译和对应 CC 证书许可的说明,该说明应该是可以点击的,链接参考上一行的内容。如果用户选择了不受限制,可以设计为不显示该元素。

衍生作品

如果该作品是衍生作品,比如同人创作,二次(或多次)创作的作品,都应该提供用户这个勾选项目的可选项,以及其参考的、二次创作利用的作品链接、名称,如果将来出现任何版权相关的问题,我们都能够解决。

该内容应该能够直接在 上传预览页面 ,以及 歌曲页面 直接展示出来:在版权信息的正下方添加一行,在该行内保留「卡片」含义的图标,并在这个地方标注是否是衍生作品,同时在后面的内容中包含一个文字为「原始作品名」的可点击链接,该链接应与用户填入的原始作品链接一致。

参与创作的其他作家

为了保证其上传作品的署名权,每个用户上传作品时使用的账户用户名即为乐队、主创、主唱、制作人的名字或是代称,同时我们希望能够为其他参与创作的作曲家、贡献的人都能出现在这个歌曲的详细页面上,进而有了这个需求。

这个需求和版权证书略有不同,创作者可能是多个人,所以选项必须是动态可添加的、可删减的,而这些内容也都应该能够同步展示到 上传预览页面歌曲的详情页面 上:在版权的正下方添加一行,在该行内使用能够传达「多人、团队」含义的图标,同时提供一个悬浮的元素,在元素中展示参与创作的作者的「职责、职务、类别」,以及其「名称」。

请注意

  1. 用户的输入应该进行预检查和防范,不应该出现链接、脚本
  2. 在悬浮元素中,应该考虑每个纵列对齐的方式和移动端的体验

[BTY 400] PST 集成(PST 指 Profit Sharing Token)

RT

说明

在当前版本中,需要开始尝试集成 Profit Sharing Token(分润代币,以下简称 PST)。 PST 是一种类似于 ERC20(以太坊的一种智能合约标准)/加密货币 的代币,我们通常称之为「分润代币」。

在 Arweave 架构设计中,PST 并非属于 ERC20 那样是可随意增发的代币,这样会有价格不确定性以及货币价值转换的波动。取而代之的是:PST 可以通过「自我治理」的方式通过 PST 持有者的投票和推选来决定是否需要执行:燃毁代币、增发代币等行为。

相关资料:

  1. 【转载】一文读懂可分润代币模型
  2. Profit Sharing Tokens: A new incentivization mechanism for an open web

在预期的设想中,我们准备为每一次付费内容的单独发行(包括但不限于:付费的单曲,付费的专辑,付费的音效,付费的播客)生成一份专属的 PST 代币,同时每一个用户也可以相应的持有其专属的代币。

需求

  • 付费内容的单独发行需要生成一个代币
  • 付费内容的单独发行所生成的 PST 需要以下内容:
    • 用户可以定义数量
    • 用户可以从生成的代币名称中选择其中一种
    • 代币的初始价格与付费内容的单价相同(专辑这样特殊的内容应该是:一张专辑对应一个 PST,对应价格是专辑的全价)
  • 付费内容生成的代币需要一个单独的购买按钮
  • 购买代币的同时购买了付费内容本身
  • 在购买代币的同时你可以选择购买更多的占比(比如:你可以购买 10 份付费作品的 PST 代币)
  • 多次购买的时候提醒用户已经购买的数量
  • 在购买代币的窗口中同时展示当前用户所占有所有发行总量的占比(如果中间 0 太多应省略为「0.0...1%」)

奖励目标

「歌单」的形式暂时还未确定,我们希望在将来也可以支持歌单创建的同时创建对应的 PST,即便外部创作者所创作的歌单为外部创作品,也一样能够在创作过程中获得收益,以此鼓励外部的创作者参与进来

内容

  • 歌单并非是付费内容,所以歌单的 PST 价格应该由用户自己定义
  • 歌单的 PST 模块不应该独立出来,也应该成为通用模块服务于其他 PST 组件
  • 歌单的 PST 购买也能够支持多次购买
  • 其他同上

[BTY 300] [合约相关] 指针化开发逻辑

RT

说明

我们现在的音乐发布模式采用的是:

  1. 发布封面文件
  2. 发布音频文件
  3. 发布封装信息为 JSON 结构的字符串
    所以在需要改变信息结构的时候就会显得十分麻烦,同时索引起来也需要很多时间。

为了解决这样的问题,也许需要借助 Arweave 的 SmartWeave 合约模式来辅助开发。

基本概念

和指针一样,我们用一个所谓的 地址 合约来指向我们的所有资源,在下面的例子中,我们讲解保存、修改、索引「音频信息为 JSON 结构的字符串」的实现逻辑:

  1. 我们需要优先生成一个资源的地址,产生一个引用。(比如我们已知封面地址为 AxCover,音频地址为 AxAudio)
  2. 在合约中我们生成一个地址,这个地址就是指向静态资源 AxCover/AxAudio 的地址,而内部存储的值可以被合约改变为其他的值
  3. 保存的时候,我们发布生成的地址
  4. 修改的时候,我们修改指针指向的地址,比如把 AxCover 改变为 AxCover2
  5. 索引的时候使用 GraphQL 来连续索引

为什么可以这么做?
实际上 Arweave 在「修改记录」的交易中就可以获知:「xxx 通过 SmartWeave 合约 change 方法改变了 tx1 的值为 AxCover2」
进而有了历史记录一样的概念。
如果我们把这个修改过程单独抽取出来展开成 数据库 操作历史记录,再去对比我们通过 GraphQL 查阅的基于合约的交易,两者的区别几乎一致。
所以你可以这么理解: 我们并没有改变原始信息的内容,但是新增了一条更改历史记录,通过历史记录我们可以知道这个值的新内容是什么。

需求

  • 需要能够修改任意被指针地址指向的信息
  • 需要能够快速通过 GraphQL 索引
  • 完整的文档

移動端界面顯示問題

photo_2020-09-25_22-24-14
詳情查看圖片
具體問題:
1.標題欄寬度異常
2.底部 Copyright 行位置異常
設備信息:
型號:iPhone Xs
作業系統:iOS 14.0.1
瀏覽器版本:Safari 14

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.