Need some guide for development on some of the topics

Hello can anyone guide me for development on some of the topics. I didn’t found any guide, examples or even I saw some I might not have noticed.
How can a smart contract(canister) deploy a freshly smart contract(canister) ?

Also another question, A canister size is limited to 4 GB for now, If I have only used 100 MB of the storage can I shrink the size to remove unused space ?
edit: I’m using rust for development.

anyone got the answers for my questions?:thinking:

Here’s example from @GLdev quickstart_scaling/ at ca9f581c270314670f6de92e25df3b6f87927a19 · GLicDEV/quickstart_scaling · GitHub

You’re only paying for memory you are actually using as long as you don’t allocate additional space by setting a non-zero memory_allocation (See: The Internet Computer Interface Specification | Internet Computer Home).