If the solo miner (or pool) receives a valid solved block from a peer, then they add it to their blockchain, remove all the confirmed transactions from their memory pool and start the whole process over again from the beginning building a new list of unconfirmed transactions to confirm.
Making a list of unconfirmed transactions - are the same unconfirmed transactions transmitted to every full node?
They might be, but there is no guarantee that they will be.
It doesn't matter. The solo miner (or pool) just chooses from the list of unconfirmed transactions that they have.
Since different pools will pick different unconfirmed transactions for the list which they will crunch, it would seem like that would dictate all partially solved blocks be dumped lest an unconfirmed transaction will be in multiple blocks or else that's acceptable.
There is no such thing as a "partially solved block". A block is either solved, or not solved.
Or since once a block is solved then all inputs are dumped by everyone and restarted with new unconfirmed transactions.
Correct. When a miner (or pool) received a solved block, they remove all the transactions that are in that block from their list of unconfirmed transactions. Then they build a new list, build a new block header, and start the process of trying all the nonce values again.
Those unconfirmed transactions in the solved block are now considered solved?
The block is solved. The transactions are confirmed.
Then subsequent confirmations are due to the solved block passing checks.
No. subsequent "confirmations" just means that additional blocks have been added to the blockchain on top of the block that first confirmed the transaction. Each new block added to the blockchain is called a "confirmation" for ALL transactions that are already in the blockchain.
Since the blockchain is currently 458142 blocks long, this means that the very first transaction that paid Satoshi Nakamoto the block reward from the very first block now has 458142 "confirmations".
So, what's to prevent a pool from ignoring solved blocks except for its solution. Wouldn't that increase their take of solved blocks?
Each block references the block before it with a hash of that block (see my list of what's in the header). That's what turns a collection of blocks into an actual block
CHAIN. All nodes and all other miners will use the longest chain (technically they use the chain with the most proof-of-work, but effectively that typically means the chain with the most solved blocks). If they receive more than one chain of the same length, then they use the first one that they receive.
Lets imagine that you have a blockchain that is 3 blocks long:
Block_A -> Block_B -> Block_C
All the miners and pools (including you) are building a Block_D that has in the header a "Double sha256 hash of Block_C".
Now lets say you receive a Block_D from your peers (lets call it Block_D
1 so we don't get confused later). All the other miners and nodes on the network have now added Block_D
1 to their blockchain.
Block_A -> Block_B -> Block_C -> Block_D
1The entire network is now working on Block_E
Meanwhile, you choose to ignore it and continue to work on your own Block_D (lets call it Block_D
2 so we don't get confused later).
Now lets say you get very lucky and solve Block_D
2 before anybody else on the entire network solves Block_E.
Now there are two competing blockchains:
Block_A -> Block_B -> Block_C -> Block_D
1Block_A -> Block_B -> Block_C -> Block_D
2The whole network is all building Block_E using the hash of Block_D
1You (and maybe a few miners that had network issues and failed to hear about Block_D
1 are building your own Block_E using the hash of Block_D
2Since the entire rest of the global network has MUCH more hash power than you and your few peers, AND they have been working on their Block_E longer than you, there is a very good chance that they are going to solve a Block_E that uses the hash of Block_D
1 long before you are going to solve a Block_E that uses the hash of Block_D
2. This means you will now have to ignore BOTH the Block_D AND the Block_E that the rest of the network is using. None of the network will ever accept your Block_E since they will already have a Block_E from their peers. This will continue so long as you continue to ignore all the block that the rest of the network is using.
In other words, you will have created a FORK of the bitcoin blockchain that ONLY you know about, and that ONLY you are using. Any bitcoins created in your fork will not be recognized as valid in the fork that everybody else is using. Sure, you'll have lots of soyBitcoins, but nobody accepts soyBitcoins and they don't have any value. You've wasted a lot of money on mining equipment and electricity to create a fork that nobody else wants to use. That's going to get very expensive, and is a pretty big waste of money with no purpose. If you had instead started working on Block_E when everyone else did then you might have solved that block first and received actual bitcoins on the blockchain that everybody uses. This would have been a much better use of your time and money.
Which would you prefer, spend a lot of money mining a bunch of worthless forked chain coins that nobody will see as valid and will be unspendable on the real blockchain, or spend that money mining actual bitcoins on the actual blockchain that you can spend and use and have actual value.
Now, there is an exception to this scenario. If you control more hash power than the entire rest of the world combined, then you will be able to add blocks to your chain faster than the world can add blocks to their chain. In this case, your chain will always be longer and the entire world will use your chain. You will get ALL of the block rewards, and have exclusive control over which transactions get confirmed. This is commonly called a 51% attack (since the rest of the world controls 49% or less of the hash power and you control 51% or more. Its a VERY expensive attack to acquire that much hash power, and then you risk everyone abandoning the bitcoin concept entirely, so you may spend a LOT of money and still not profit from it.