Gather the ingredients.
Heat oven to 325 F degrees.
Remove core from cabbage. Place whole head in a large pot filled with boiling, salted water. Cover and cook 3 minutes, or until softened enough to pull off individual leaves. You will need about 18 leaves.
When leaves are cool enough to handle, use a paring knife to cut away the thick center stem from each leaf, without cutting all the way through.
Chop the remaining cabbage and place it in the bottom of a casserole dish or Dutch oven.
In a large skillet, saute chopped salt pork, carrots, and onions until tender, and let it cool. Place the millet in a medium saucepan with 2 cups broth of choice or salted water to cover. Bring to a boil, turn off heat and drain but reserve the cooking liquid. Mix parboiled millet with salt pork-carrot-onion mixture. Mix in eggs, salt and pepper,and hot pepper, if using.
Place about 1/2 cup of millet filling on each cabbage leaf. Roll away from you to encase the filling. Flip the right side of the leaf to the middle, then flip the left side. You will have something that looks like an envelope. Once again, roll away from you to create a neat little roll. Place in layers on the chopped cabbage in the Dutch oven.
In a small saucepan or skillet, make a roux with the butter and flour, cooking until golden. Whisk in the tomato paste and sour cream, adding a few tablespoons of reserved millet cooking liquid, if necessary, to achieve a smooth consistency.
Add about 1 cup liquid to Dutch oven and bring to a boil. Turn off heat and pour sour cream-tomato paste sauce on top of cabbage rolls. Cover and place in oven. Cook about 1 hour or until cabbage and millet are tender.