Sift both flours, cocoa, salt, baking powder, baking soda, and cinnamon together three times; set aside. In the photo, the dry ingredients are in the sifter ready for a third pass through the sifter’s mesh.
In a large bowl, whisk together the eggs, egg yolks, sugar, buttermilk, melted butter, and vanilla until very smooth
Add the flour mixture gradually to the cocoa mixture, stirring each addition in very gently with a rubber spatula only until the ingredients are well combined. The dough will be quite soft and wet. It is important not to beat the batter or the doughnuts will be tough.
Scrape down the sides of the bowl and cover tightly with plastic wrap. Refrigerate for at least1 hour or as long as overnight.
Lightly dust your work surface with flour and scrape the chilled dough onto the flour.
Sprinkle with additional flour and gently roll or pat the dough to a 1/2-inch thickness. Check frequently to be sure the dough isn’t sticking to your surface.
With a floured doughnut cutter or two floured round cutters of different sizes, cut out doughnuts and holes; reserve the holes if you wish.
Gently gather the scraps together (including holes if you don't wish to fry them as doughnut holes), flour lightly, and repeat the patting and cutting of the dough. You should have 15 to 18 large doughnuts and holes.
Line a large baking sheet with silicone baking pan liner or cooking parchment, and place the doughnuts about 1-inch apart on the pan.
Put the doughnut holes, if using, among the doughnuts.
Cover loosely with a kitchen towel, and let the doughnuts rest at room temperature while the oil heats up. If you’re not going to cook the doughnuts within the hour, refrigerate them for up to 3 hours. Bring them to room temperature before frying.
Pour the oil into a heavy 5- to 7-quart pot. A cast-iron Dutch oven or enameled cast-iron pan is ideal. Attach a candy thermometer or digital probe thermometer to the side of the pan and heat the oil to 375 degrees over medium-high heat. This may take 30 to 40 minutes.
Place a large cooling rack over a large baking sheet with a rim and set aside.
When the oil is ready, carefully lift one of the doughnuts off its pan and slip it into the hot oil. Cook 4 or 5 doughnuts at a time, for a total of about 2 minutes, turn them over every 30 seconds or so (wooden chopsticks work well), until the doughnut are puffed, cooked through, and a deep brown color.
Remove them from the fat with a slotted spatula, allowing the excess oil to drain back into the pot. Place the doughnuts on the rack to drain further.
Be sure the temperature of the oil does not drop below 365 degrees during frying, or the doughnuts will absorb too much oil. Return the temperature of the oil to 375 degrees before continuing with the cooking. Fry the doughnut holes last.
You can serve the doughnuts warm or wait until they’ve reached room temperature.
Here’s a size comparison between a raw and cooked doughnut.