I am close. Hoping to carve out some time this weekend to complete.
Question
I asked Perplexity.ai - Do EVM smart contracts allow for adaptive smart contracts?
Answer
No, traditional Ethereum Virtual Machine (EVM) smart contracts do not natively support adaptive or self-modifying behavior. EVM smart contracts are designed to be immutable once deployed on the Ethereum blockchain.
The immutability of smart contracts is a core principle in Ethereum, ensuring that the code and logic of a contract cannot be altered after deployment. This provides security, transparency, and predictability, as all parties interacting with the contract can be certain that the rules will not change unexpectedly.[1][4]
However, there are ways to introduce some level of adaptability or upgradability to EVM smart contracts through specific design patterns and proxy contracts. Some common approaches include:
-
Proxy Patterns: These involve deploying a proxy contract that acts as an intermediary between the user and the actual logic contract. The logic contract can be upgraded by deploying a new version and updating the proxy to point to the new contract address.[2]
-
Eternal Storage Patterns: These separate the contract’s code and storage into different contracts. The code contract can be upgraded while maintaining the same storage contract, preserving the contract’s state.[5]
-
Governance Mechanisms: Some contracts implement on-chain governance mechanisms that allow authorized parties (e.g., token holders) to vote on proposed upgrades or parameter changes to the contract’s logic.
While these patterns enable upgradability, they do not provide true self-modifying or adaptive behavior as seen in Zenon Network’s Adaptive smart contracts. The upgrades or changes in EVM smart contracts still require external triggers or interventions, rather than being driven autonomously by the contract itself based on conditions or external factors.[1][4]
Citations:
[1] Blockchain smart contracts: Applications, challenges, and future trends | Peer-to-Peer Networking and Applications
[2] https://www.usenix.org/system/files/sec21summer_rodler.pdf
[3] Top 9 smart contract platforms to consider in 2024 | TechTarget
[4] Smart Contracts: All You Need to Know in One Read
[5] What are Upgradable Smart Contracts? - ImmuneBytes
The PP token on the Network now isn’t the same as PP from the testnet that was converted to QSR. I thought the PP on the network now was just another ZTS that was created by someone?
Ya, $PP is really perplexing to me. Appears that Rigel created it and started to dispense it fairly in Aug 2023 with an air drop to all users. He somehow created a vanity ZTS address that ended in pp
. I would like to know how. I asked this in TG.
And the $PP token was in the marketing video exactly when the “Adaptive Smart Contract” image appeared. That leads me to believe $PP could be used to fuel adaptive smart contracts in some way. BUT, if this was planned from the release of this video (Nov 26, 2021 ) how is it that the token was only created in 2023? That seems pretty risky to telegraph the $PP token but create it years later.
UPDATE: I’m 99% sure my theories are fake news and failed schizo. But I’m leaving 1% out there due to this image (adaptive smart contracts and PP on the same…). Maybe Rigel is building something that uses PP to fuel a zApp. But, that is complete speculation.
For anyone else looking into $PP, it was not in the genesis.json.
I did notice this in there:
"ExtraData": "000000000000000000004dd040595540d43ce8ff5946eeaa403fb13d0e582d8f#We are all Satoshi#Don't trust. Verify",
I think we should focus on adding more value to ZNN or QSR rather than other ZTS tokens.
Please be respectful to other members - no need for direct personal comments
I hope to run this today in Proxmox
https://github.com/EovE7Kj/unikernel-z/releases
Setup Instructions
Nice proof-of-concept. The next milestone can be a gas metering implementation for the unikernel.
UPDATE!
The qcow2 build that was pushed last night was not the correct image. I am re-uploading with the correct build now. @0x3639 I will let you know when this is ready.
@EovE7Kj check zama. I’m researching how we can integrate a gas metering system inside the unikernel controlled by an embedded contract.
Is it hard to create a custom module that is loaded by the unikernel? Can you tell a bit about the lifecycle of an unikernel? Thanks!
which version on Proxmox are you running?
pve-manager/8.2.2/9355359cd7afbae4 (running kernel: 6.8.4-3-pve
)
did your test boot past this point?
I wonder if it’s a BIOS issue
@EovE7Kj any advice? I’ll try spend some time tonight to look into it in more detail
I double checked my steps and everything looks correct. I do have an option to select UEFI but that did not help. It booted into a shell
command.
could just not be compatible, it says in the github notes that it’s only been verified on QEMU and XEN. Pretty sure ProxMox is based on KVM (although they’re pretty much forks of each other)
disk size is definitely 10Gb, so that’s not the issue either
root@pve:/var/lib/vz/template/qcow# qemu-img info znn.qcow2
image: znn.qcow2
file format: qcow2
virtual size: 10 GiB (10737418240 bytes)
disk size: 265 MiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
Child node '/file':
filename: znn.qcow2
protocol type: file
file length: 265 MiB (278134784 bytes)
disk size: 265 MiB