IP3 是一个在区块链上提供版权保护的协议。我们集合了 BAYC、Azuki 等项目的版权许可,和创作者一起制作经过版权许可的衍生品并进行售卖。我们将版权许可物化为一个 NFT,我们称之 “NFT-CD 授权卡”,获得授权卡的用户等同于获得对应 NFT 的商用和衍生品制作的授权,IP3 许可协议将其记录在区块链上,提供给用户随时查看。
目前,区块链技术发展已逐渐成熟,但开发者在应用时仍然面临挑战:
第一,区块链技术体系多、平台多,且每种技术差异比较大,对开发者来说比较难掌握;
第二,基于区块链技术的智能合约还比较新,相关配套并不是很成熟,目前缺少好的智能合约开发和测试工具,以及智能合约的安全审计工具;第三,区块链应用与传统应用在开发模式和运维模式上存在一定差异,这种转变可能会导致一些开发者不适应。
本文会以技术的角度,详细记录下IP3从无到有的过程,说说大龄传统互联网程序员毕业后 如何转型成为日薪千刀的 web3 builder。
如图,我通过网络拓扑的方式列出了IP3在前端、后端、区块链涉及的所有技术栈和服务,文后会针对每一项做详细的拆解。以目前区块链的基础设施和性能来看,大部分DApp仍然需要借助web2下的大多数基础服务才能给用户一个比较好的交互体验,一款基础功能的DApp开发,对技术深度要求并不高,如果大家有移动互联网或者web开发经验,应该能很好的理解钱包登录,合约调用,链上异步确认这些行为,但是因为涉及的范围比较广,几个人的小团队,对开发同学的技术广度要求较高,需要具有边阅读文档边开发的能力。
IP3 产品形态上更接近opensea,所以在开发,构建,部署的框架选择上都做了借鉴,包括视图框架,图片处理,testnets/mainnet的分离部署,rinkeby测试网选择等:
前端视图框架:
之前工作中没做过前端开发,所以进行了大量学习后,在最常用的几个框架中选则了react mui,前期验证功能,可以直接在mui store中购买一个项目需要的模板样式,进行二次开发即可。
后端框架:
后端分两大部分,一个是Dapp网站数据的正常业务逻辑交互服务,一个是前端链上交互后,所需要的后台异步同步服务,如NFT的mint、transfer、pay等操作,都需要链上状态确认后,修改对应数据状态,才可在前端正确展示,从性能上考虑,其实后端用golang,rust,java开发比较合适,IP3项目因为工期,人力原因,也使用的js框架,因为可以复用部分前端代码。。。
合约开发、部署:
合约开发目前主流框架是truffle和hardhat,各有优缺点,IP3是从学习 scaffold-eth 开始的,scaffold中对hardhat做了比较好的封装(开发,部署,abi、bitcode提取等),所以后面的也就一直延用了。
前端合约交互:
scaffold 中对前端和合约交互做了封装,但代码风格、文档、支持的功能都没有wagmi好,在开发完整体逻辑后,把所有前端合约交互框架改为了wagmi。
后端合约交互:
后端主要是对IP3 一个主合约,一个版权合约,4个蓝筹项目衍生品合约 状态的监测,对支持的蓝筹项目在链上行为的监测(交易,转移,销毁等)。
Testnets调试:
合约开发完后,可以自己搭建hardhat单节点测试网络,来测试合约基本功能,基本功能测试完成后,部署到rinkeby测试网,再进行前后端合约交互测试。
Mainnet调试
主网部署,目前都是在remix上编译,模拟部署,没有问题了,才会使用hardhat进行真实部署。
Aws 部署:
IP3部署了两套环境, testnets.ip3.xyz 为开发调试和预上线使用,只和Eth Rinkeby网络交互,ip3.xyz 为线上环境,只和Eth Mainnet交互。
合约开发
前端/后端业务开发
服务部署
合约部署
1、前端开发:40人日
2、后端开发:14人日
3、合约开发&部署:14人日
4、前后端联调::7人日
5、bug fix:14人日
除了花费的人力、时间成本 ,IP3在开发、部署过程中的必要费用如下
1、AWS:域名解析,s3,ec2,数据库等合计约 $250 每月
2、以太坊主网合约部署:Ip3目前共部署6个合约,花费约0.3Eth
3、ip3.xyz 域名 $2000 每年
later …