Bro's AI is trying to peer review something that is not done.
Right now, I’m just about to finish with the V2 contracts for testnet (currently on master of the repo, just not yet deployed)
V2 contracts have some bug fixes and quite a few things that enable future development in all directions.
After deploying, I will verify the contracts on etherscan as well.
The real $CAW has profiles on ETH, staking on ETH, and never requires gas on another chain.
The real CAW lets you like/post/follow without signing your wallet constantly.
The real CAW will win the world.
Still building, everyday.
Brick by brick we build an empire.
@Ryoshi_CAW This is how caws will get rendered on other platforms:
https://t.co/2Oc9FSwVQ5
Looks like a few small things to fix up, but much better than before.
What feature set would excite you the most to be integrated into CAW at some point in the future?
(Zero promises that any of these will be built. I'm honestly just doing research for polling UX right now)
Okay frens. Testnet is live.
==> https://t.co/i5e4gVNOQX
Thank you everyone for being here and enduring the long journey this has been. I believe in the vision, the manifesto, and I believe in the future of $CAW. #TogetherWeFly.
Please understand:
=> This is not YET meant to be a fully finished product.
=> There will be bugs, there will be mistakes.
=> The important thing is that we work together to find them.
Please click the little bug button/icon to report any issues you find. 99% of my testing has been with Rabby on chrome desktop.
If you’re using other browsers or wallets or devices, be prepared to submit bug reports.
I will redeploy these contracts and blow away the database at some point, so your data is… well forever on chain, but not forever on this front end.
---
Some notes for testnet:
It works with Sepolia, so you will need a little Sepolia-ETH in your wallet to send transactions.
Faucet here: https://t.co/4KLeMRFFAN (or you can use https://t.co/NpXeU5lxkJ)
Once you have Sepolia ETH, you’ll need to get some mCAW (mintable caw) there is a faucet on the app.
https://t.co/ljVqrrrhVK
From the developer side, I’ve made an extremely easy 1-liner for anyone who would like to try to install a front end node on their own server. Just run:
/bin/bash -c "$(curl -fsSL https://t.co/ik5mZSTaRe)"
It’s as simple as that.
It will ask you questions.
You might have questions.
I will be here to help answer questions (after I sleep).
Teh next step for me is perfecting deployment process.
(will make it easy for nodes/front-ends to be created)
End result of this next bit of work will be a public testnet
30 more commits pushed to $caw github tonight.
https://t.co/MELZO2Mf0T
Today was mostly focused around scalability, managing rate limits with RPC urls, and limiting admin controls to be deployment-only, and simplifying data replication.
I'm looking forward to tomorrow. Exciting things on their way.
I am personally 100% aligned with the manifesto.
I fully intend for this system to be trustless.
I'm happy to have the feedback.
I'm happy to improve.
The entire system is actually designed and built to work without an admin, without an owner, without a DAO, and without a multi-sig, as soon as deployment is complete.
Allow me to explain the need for deployment setters:
When two contracts depend on eachother, it is required that the second contract has a setter function where you can pass the first contract's address. If that setter is not admin-only, it can be overridden or front run, and a malicious actor can put an unexpected contract in control.
So here's the options for trustlessness:
1) Make it so these functions can be called by the deployer EXACTLY once, as in:
require(msg.sender == deployerAddress && peerAddress == zeroAddress, "can be set only once by the deployer")
2) Set a time limit:
require(msg.sender == deployerAddress && blockNumber < deployedBlock + 100, "beyond allowed alteration time frame")
3) Brick any critical function until ownership is renounced:
require(owner == zeroAddress, "Ownership is not yet renounced")
#1 is my favorite for the deployment setters, it is the most trustless - But maybe maybe a combination of all three makes sense across the project, depending on the function.
Some things to clear up:
A) Replication chains are optional and chosen by clients. If you are running a client, you can choose to have your data enabled on a replication chain.
Only chains which have contracts deployed and have been "configured" via setPeer can be chosen as replication chains. This is a limitation of LayerZero's cross chain messaging. Configuration is needed.
When the deployer contract adds a replication chain it's merely adding an option for the clients to choose from. This means leaving addReplicationChain open is zero-impact and zero risk. And... actually it's possibly something that could be left entirely open with zero admin privileges. I'll check on that.
B) The setReceiveGasLimit is actually a remanent of my previous implementation for replication, I've figured out a much more efficient way to handle it, so I believe setReceiveGasLimit, can be removed entirely.
C) Idk where you seeing 90 commits from? This week I pushed 545 commits that were not up to date.
D) I'm happy to have the feedback. The codebase is not 100% done yet, so this is good timing.
I will implement the trustless suggestions that I've presented in this tweet in the places they make sense.
They are actually pretty easy - so you can check back tomorrow or later tonight and review what I've done.
When you access CAW, this is likely the first screen you will see.
It looks like countless crows (users) flying freely across the decentralized sky.
Although it is still on a testnet, we have successfully enabled our voices to reach others through the blockchain without a central server.
Those voices can never be censored.
@Xubu_Trad I agree, and scrutiny is crucial here. If I were in your place, I would be asking the same questions.
Like I said: I can brick the contracts until ownership is renounced. That's the closest we can get to trustless before renouncing is on chain.
Here's a quick video to show a bit more of what's been created. I think this only covers 25%-30% of the features I've implemented.
Everything you can see is clickable and working.