Cut the spare ribs apart at every second rib so they're in managable sized pieces. Sprinkle the spare ribs generously with salt, and let them sit in a container overnight in the refrigerator. The next day, bring a large pot of water to a rolling boil, then add the pork (you may need to do this in two batches). Return the water to a boil and let cook them until there is no blood coming out (about 5-10 minutes). Use tongs to transfer the ribs to a bowl of cold water, then scrub any bits of blood or scum off of them. Give them a rinse under cold water and put them in a clean bowl. Repeat with the rest of the ribs.
Dump the now murky water down the drain and rinse out the pot. Add the cleaned ribs to the pot with the garlic, peppercorns and cinnamon, and add enough water to cover the top of the ribs by 1-inch. Bring the water to a simmer over medium high heat, then lower the heat to maintain a gentle simmer (medium low on my stove). Skim off any foam or fat that floats to the surface (you should only have to do this for the first 20 minutes). Continue simmering uncovered for 2 hours.
To make the dipping sauce for the ribs, combine the kecap manis, soy sauce and chilis in a bowl then divide evenly among small bowls or ramekins. If you can't find kecap manis, you can also use Chinese dark soy sauce mixed with some honey or agave nectar.
After two hours the water should be just above the level of the meat. If it's too low, add some more water so the meat is just covered. Taste the soup for salt adding more as needed, then add the green papaya. Cover with a lid and turn down the heat slightly and cook for another 1 hour. Add the gai choy and cook for about a minute or until it is bright green.
Serve in bowls with plenty of soup, sprinkle the fried shallots on top, and serve with a side of rice and the dipping sauce.